📄 kb.c
字号:
#include <string.h>
#include "..\inc\def.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\kb.h"
#define LOOP 1
void __irq keyboard(void);
void __irq keyboard(void)
{
char x,y,xrecord,yrecord,temp;
rI_ISPC=BIT_EINT0; //clear pending_bit
Delay(200);
if((rPDATF&0x1E0)==0x1E0)
{
return;
}
else
{
x=1;
y=1;
xrecord=(~((rPDATF&0x1E0)>>1));
xrecord=xrecord>>4; //键盘输入
while(xrecord!=0x1) //确定行
{
x=x+1;
xrecord=xrecord>>1;
if(xrecord==0)
{
rPDATG=0X0F;
return;
}
}
rPDATG=0XEF;
while((rPDATF&0x1E0)==0x1E0)
{
rPDATG=rPDATG<<1;
temp=rPDATG;
if((temp&0xf0)==0XF0)
{
rPDATG=0X0F;
return;
}
}
yrecord=~((rPDATG&0xF0)>>4)&0x0F;
while(yrecord!=0x1)
{
y=y+1;
yrecord=yrecord>>1;
if(yrecord==0)
{
rPDATG=0X0F;
return;
}
}
Led_Display(x+(y-1)*4-1);
Delay(100);
rPDATG=0X0F;
}
}
void Test_Kb(void)
{
rEXTINT=0x22222222;
rINTCON=0x5;
pISR_EINT0=(unsigned)keyboard;
Uart_Printf("keyboard test for S3C44B0X\n");
Uart_Printf("press any key,it will display on 8-SEG\n");
Uart_Printf("Typing any key to exit!!!\n");
rINTMSK =~(BIT_GLOBAL|BIT_EINT0);
while(!Uart_GetKey());
rINTMSK|=BIT_EINT0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -