全部博文(2005)
分类: LINUX
2007-05-17 15:52:15
//■
//【 版 权 】Copyright (c) 2006-2008 GLIETHTTP
//
//【 文 件 版 本 】v1.x
//
//【 创 建 日 期 】2006/12/21
//
//【 文 件 描 述 】LED闪灯驱动测试-应用程序—led_timer.c
//■
#include
#include
#include
#include
#include
#include
#include
#include
int fd;
void OnTimer(int signo)
{
switch (signo)
{
case SIGALRM:
printf("Catch a signal -- SIGALRM \n" );
signal(SIGALRM,OnTimer);
break;
case SIGVTALRM:
//printf("Catch a signal -- SIGVTALRM \n");
{static int led_on=3;
ioctl(fd,led_on,NULL);
led_on=(led_on==3)?4:3;
}
signal(SIGVTALRM,OnTimer);
break;
}
}
int main()
{struct itimerval value,ovalue,value2;
signal(SIGVTALRM,OnTimer);
value2.it_value.tv_sec=0;
value2.it_value.tv_usec=250000;
value2.it_interval.tv_sec=0;
value2.it_interval.tv_usec=250000; //250ms定时中断间隔
setitimer(ITIMER_VIRTUAL,&value2,&ovalue);
fd=open("/dev/led",O_RDWR);
if(fd<0){
printf("####led device open fail####\n" );
return (-1);
}
for(;;);
close(fd);
}
编译:
[root@gliethttp]# arm-linux-gcc -o led_timer led_timer.c
成功编译后,会生成一个led_timer可执行文件,将led_timer通过rz三线串口发送到目标板
[root@B.J.xx /root]# chmod a+x led_timer //改变执行权限
[root@B.J.xx /root]# ./led_timer
led_timer应用程序正常运行之后,LED2指示灯将以0.25s的间隔闪烁。