📄 key.c
字号:
#include "Device.h"
#define KEYVAL (*( volatile Uint16 *)0x2c00);
#define UP_KEY 16
#define DOWN_KEY 32
#define LEFT_KEY 4
#define RIGHT_KEY 64
#define ESC_KEY 8
#define ENTER_KEY 128
#define NOKEY 0
Uint16 xCount=0x0;
int yCount;
Uint16 LastKeyVal;
void ScanKey()
{
Uint16 tmp,i;
LastKeyVal=KEYVAL;
tmp=KEYVAL;
tmp&=0xfc;
if(tmp!=stKey.keyold)
{ for(i=4;i<=128;i<<=1)
{ if(!(tmp&i)){ stKey.keydown =i; break; }
}
stKey.keyold=tmp;
}
}
void HandleKey()
{
if(stKey.keydown==NOKEY)return ;
switch(stKey.keydown)
{ case ENTER_KEY:
if(pMenuItem->pEnterItem != NULL)
{ pMenuItem=pMenuItem->pEnterItem ;
DispMenu(pMenuItem->ItemPage); DispData();
}
break;
case ESC_KEY:
if(pMenuItem->pCancelItem != NULL)
{ pMenuItem=pMenuItem->pCancelItem ;
DispMenu(pMenuItem->ItemPage); DispData();
}
break;
case UP_KEY:
if(pMenuItem->pUpItem != NULL)
{ pMenuItem=pMenuItem->pUpItem;
DispMenu(pMenuItem->ItemPage); DispData();
}
break;
case DOWN_KEY:
if(pMenuItem->pDownItem != NULL)
{ pMenuItem=pMenuItem->pDownItem ;
DispMenu(pMenuItem->ItemPage); DispData();
}
break;
case LEFT_KEY:
if( xCount<=0)
xCount=3;
else
xCount--;
if(pMenuItem->pLeftItem != NULL)
{ pMenuItem=pMenuItem->pLeftItem;
DispMenu(pMenuItem->ItemPage); DispData();
}
else
xCount=0;
break;
case RIGHT_KEY:
if( xCount>=3)
xCount=0;
else
xCount++;
if(pMenuItem->pRightItem != NULL)
{ pMenuItem=pMenuItem->pRightItem;
DispMenu(pMenuItem->ItemPage); DispData();
}
else
xCount=0;
break;
default:
break;
}
stKey.keydown = NOKEY ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -