8bit寫到32bit又回到8bit
好久沒用的key scan
這次又拿出來用了
做了些修正
#define Key_port P3
#define Mark_Key 0xFF
#define DebounceReg 20
#define b_Pressed 0x02
#define b_Release 0x04
char Get_Key(void);
char Get_KeyStatus(void);
void Key_Severs(void);
char Debounce_cnt;
unsigned char Key_status;
unsigned char Key_buffer;
unsigned char First_key;
unsigned char Sec_key;
void Key_init(void)
{
Debounce_cnt = 0;
Key_status = 0;
Key_buffer = 0;
First_key = 0;
Sec_key = 0;
}
void Key_sever(void)
{
char Key_temp;
if(Debounce_cnt)
{
Debounce_cnt--;
return;
}
Key_temp = Key_port & Mark_Key;
if(Key_temp ^ First_key)
{
First_key = Key_temp;
Debounce_cnt = DebounceReg;
return;
}
if(First_key ^ Sec_key)
{
if(First_key)
{
Key_status = b_Pressed;
Key_buffer = First_key;
}
else
Key_status = b_Release;
Sec_key = First_key;
}
else
Key_status = 0;
}
char Get_KeyStatus(void)
{
return Key_status;
}
char Get_Key(void)
{
return Key_buffer;
}
沒有留言:
張貼留言