Linux下LED驱动测试(应用程序)源码

来源:互联网 发布:微量氧分析仪 淘宝 编辑:程序博客网 时间:2024/06/01 08:27

转载的文章只为个人学习与分享,若文章有侵权之处,麻烦与本人联系,本人将及时删除。

 

//■
//【 版       权 】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
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的间隔闪烁。

原创粉丝点击