📄 key_scan.c
字号:
#include "Key_Scan_IO_MAP.h"
#include "Key_Scan.h"
#define C_MEM_SIZE 4
__no_init static char aby_KEY_Buffer[C_MEM_SIZE];
void KEY_Initial_IO(void)
{
char by_Loop;
for(by_Loop = 0;by_Loop < C_MEM_SIZE;by_Loop++)
aby_KEY_Buffer[by_Loop] = 0;
IO_Output_KEY_S0();
IO_Output_KEY_S1();
IO_Output_KEY_S2();
IO_Output_KEY_S3();
IO_Input_PORT2();
IO_Clear_KEY_S0();
IO_Clear_KEY_S1();
IO_Clear_KEY_S2();
IO_Clear_KEY_S3();
}
char KEY_Get_Buffer(char by_Address)
{
return(aby_KEY_Buffer[by_Address]);
}
void KEY_Scan_1ms_Int(void)
{
static char by_Index = 0;
switch(by_Index)
{
case 0:aby_KEY_Buffer[0] = O_KEY_IN_PORT2;
//IO_Clear_KEY_S0();
IO_Clear_KEY_S1();
//IO_Clear_KEY_S3();
IO_Set_KEY_S2();
by_Index = 1;
break;
case 1:by_Index = 2;
break;
case 2:aby_KEY_Buffer[1] = O_KEY_IN_PORT2;
IO_Clear_KEY_S2();
//IO_Clear_KEY_S1();
//IO_Clear_KEY_S0();
IO_Set_KEY_S3();
by_Index = 3;
break;
case 3:by_Index = 4;
break;
case 4:aby_KEY_Buffer[2] = O_KEY_IN_PORT2;
//IO_Clear_KEY_S1();
//IO_Clear_KEY_S2();
IO_Clear_KEY_S3();
IO_Set_KEY_S0();
by_Index = 5;
break;
case 5:by_Index = 6;
break;
case 6:aby_KEY_Buffer[3] = O_KEY_IN_PORT2;
IO_Clear_KEY_S0();
//IO_Clear_KEY_S3();
//IO_Clear_KEY_S2();
IO_Set_KEY_S1();
by_Index = 7;
break;
case 7:by_Index = 0;
break;
default :break;
}
}
void Key_Wake_Cpu_Int(void)
{
if(P2IFG != 0)
{
P2IFG = 0X00;
P2DIR &= 0X00;
WDTCTL = 0x6a00;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -