⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.c

📁 AT91fr40162的FLASH读写程序
💻 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 + -