EEliod嵌入式实验3

来源:互联网 发布:淘宝的隐私设置在哪里 编辑:程序博客网 时间:2024/06/03 14:53

实验内容:实现16个按键的检测,并在LED1和LED2上显示现两位键值信息(01~16)


#include <stdio.h>#include "register_variant.h"#define LED_CS2   (*((volatile unsigned short int *)(0x10300000)))//LED1 and LED2#define LED_CS3   (*((volatile unsigned short int *)(0x10400000)))//LED3 and LED4#define KPDK_VALUE(*((volatile unsigned char *)(0x41500008)))//Direct Keypad#define KPAS_VALUE(*((volatile unsigned char *)(0x41500020)))void button_statusFetch(void){char i,j = 0;unsigned short int kbd_buff;i = KPDK_VALUE ;j = KPAS_VALUE ;switch (i){case 0x40://key-press 1kbd_buff=0x7940;LED_CS2 = kbd_buff;LED_CS3 = 0x8F8F;break;case 0x02:  //key-press 2kbd_buff=0x2440;LED_CS2 = kbd_buff;LED_CS3 = 0x8F8F;break;case 0x04:  //key-press 3kbd_buff=0x3040;LED_CS2 = kbd_buff;LED_CS3 = 0x8F8F;break;case 0x20: //key-press 4kbd_buff=0x1940;LED_CS2 = kbd_buff;LED_CS3 = 0x8F8F;break;default:   kbd_buff=0x8F8F;  break;} switch (j){case 0x00://key-press 5kbd_buff=0x1240;LED_CS2 = kbd_buff;LED_CS3 = 0x8F8F;break;case 0x01:  //key-press 6kbd_buff=0x0240;LED_CS2 = kbd_buff;LED_CS3 = 0x8F8F;break;case 0x02:  //key-press 7kbd_buff=0x7840;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x05: //key-press 8kbd_buff=0x0040;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x10://key-press 9kbd_buff=0x1040;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x11:  //key-press 10kbd_buff=0x4079; LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x12:  //key-press 11kbd_buff=0x7979;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x15: //key-press 12kbd_buff=0x2479;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x20://key-press 13kbd_buff=0x3079;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x21:  //key-press 14kbd_buff=0x1979; LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x22:  //key-press 15kbd_buff=0x1279;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;case 0x25: //key-press 16kbd_buff=0x0279;LED_CS2 = kbd_buff;        LED_CS3 = 0x8F8F;break;default:   kbd_buff=0x8F8F;  break;}}void dummyOs(void){ int led_sharp;int temp=~0;LED_CS2 = temp;LED_CS3 = temp; while(1)    {   led_sharp=ledShareInterval;   for(; led_sharp>0; led_sharp--)      {            button_statusFetch();               }}}



0 0
原创粉丝点击