Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15490485
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: 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的间隔闪烁。

阅读(2441) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~