?? key.c
字號:
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <stdint.h>
uint8_t getkey(void);
const uint8_t keyVAL[] PROGMEM={0x1e,0x1d,0x1b,0x17,0x2e,0x2d,0x2b,0x27,
0x4e,0x4d,0x4b,0x47,0x8e,0x8d,0x8b,0x87
};
uint8_t getkey(void)
{
uint8_t key_tmp,key_tmp1=1,i;
key_tmp=PIND;
key_tmp&=0x0f;
if(key_tmp==0x0f) key_tmp1=0;
else
{
_delay_ms(20);
key_tmp=PIND;
key_tmp&=0x0f;
if(key_tmp==0x0f) key_tmp1=0;
else
{
DDRD=0x00;
key_tmp1=PIND;
key_tmp1=PIND;
key_tmp1=PIND;
key_tmp1&=0xf0;
key_tmp|=key_tmp1;
for(key_tmp1=1;key_tmp1<=16;key_tmp1++)
{
i=pgm_read_byte(keyVAL+key_tmp1-1);
if(key_tmp==i) break;
}
if(key_tmp1==17) key_tmp1=0;
}
}
DDRD=0xf0;
PORTD=0x00;
return key_tmp1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -