Chinaunix首页 | 论坛 | 博客
  • 博客访问: 296765
  • 博文数量: 51
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1507
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-23 15:58
个人简介

喜欢Liunx,C,爱好嵌入式技术,爱好Qt 等跨平台技术

文章分类

全部博文(51)

文章存档

2014年(1)

2013年(50)

分类: 嵌入式

2013-07-15 15:58:35

#include
 #include
 #include
 #include
 #include
 #include
 #include
 #include
 #include
 #include
 
int main(void)
 {
  int buttons_fd,led_fd;
  char buttons[6] = {'0', '0', '0', '0', '0','0'};
 
 buttons_fd =open("/dev/buttons", 0);
  if (buttons_fd < 0) {
   perror("open devicebuttons");
   exit(1);
  }
  led_fd = open("/dev/leds", 0);
  if(led_fd < 0) {
   perror("open deviceleds");
   exit(1);
  }
  for (;;) {
   char current_buttons[6];
   int count_of_changed_key;
   int i;
   if (read(buttons_fd,current_buttons, sizeof current_buttons) != sizeof current_buttons){
    perror("readbuttons:");
    exit(1);
   }
 
  for (i = 0,count_of_changed_key = 0; i < sizeof buttons /sizeof buttons[0]; i++) {
    if(buttons[i] != current_buttons[i]) {
     buttons[i]= current_buttons[i];
     printf("%skey%d is %s", count_of_changed_key? ", ": "", i+1, buttons[i] == '0' ?"up" : "down");
     //按下时亮,松开时灭,注意这里由于mini2440开发板只有4个灯,而按键有6个,所以只能按前四个键才能执行,否则按其他键会报错的。//
 
    if(buttons[i]!='0')
 
     ioctl(led_fd,1,i);
     else
      ioctl(led_fd,0,i);
     count_of_changed_key++;
    }
   }
   if (count_of_changed_key){
    printf("\n");
   }
   
   
  }
  close(buttons_fd);
  return 0;
 }

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