📄 key.c
字号:
#include "dtm_v3.h"
#include "dtm.h"
#include "externdef.h"
/****************************************************************************
* 名称:KeyReadKey()
* 功能:读按键值
* 入口参数:gcKeyUp=1有键按下,gcKeyNum键值
* 出口参数:无
* 说明:
****************************************************************************/
void KeyReadKey(void)
{
MY_PIO_PER = KEY_MASK;
MY_PIO_ODR = KEY_MASK;
if((MY_PIO_PDSR & KEY_MASK) != KEY_MASK) { // 有按键按下
DelayMCK4(300*SPI_BASE_DELAY_TIME); // 延迟
if((MY_PIO_PDSR & KEY_MASK) != KEY_MASK){ // 有按键按下
gdwKeyNum = ~(MY_PIO_PDSR & KEY_MASK);
if((gdwKeyNum & KEY1_MASK)==KEY1_MASK) gdwKeyNum = KEY1_MASK;
if((gdwKeyNum & KEY2_MASK)==KEY2_MASK) gdwKeyNum = KEY2_MASK;
if((gdwKeyNum & KEY3_MASK)==KEY3_MASK) gdwKeyNum = KEY3_MASK;
if((gdwKeyNum & KEY4_MASK)==KEY4_MASK) gdwKeyNum = KEY4_MASK;
if (gcKeyDown==0) gcTimeOfKeyPress=0; // 如果首次按下按键,请长按键时间
gcKeyDown = 1;
}
}
else { // 无按键按下
if (gcKeyDown) {
gcKeyDown = 0;
gcKeyUp = 1;
DispBackLigth(ON,20);
if (gcTimeOfKeyPress>=gcKeyPressA) {
gcKeyLongPress = 1; // 如果长按键时间大于给定的值,置标记
gcTimeOfKeyPress = 0; // 请按键时间计数
}
}
else {
gcKeyUp = 0;
gcKeyDown = 0;
gcKeyLongPress=0; // 按键抬起时,请长按键标记
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -