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

📄 key.h

📁 键盘处理程序。完成从按键扫描、去抖到按键类型判断的全过程。
💻 H
字号:
#ifndef __KEY_H__
#define __KEY_H__
#include "DvrKEY.h"

//for ui_KeyID
#define C_Null		0x00		//	该值表示当没有键按下的时候DrvGetKeyID()函数的返回值
								//	请根据底层的DrvGetKeyID()函数修改此值
//	下面这些是自定义的键值对应的常量名,方便编程
#define C_Record	0x0004
#define C_Prev		0x0002
#define C_Next		0x0001
#define C_StopR		C_Record
#define C_StopP		C_Next
#define C_VolDn		0x0010
#define C_VolUp		0x0020

//for ui_KeyCount
//	去抖时间常数设置,可以根据需要修改
//	该设定值/KeyScan_ServiceLoop()函数被调用的频率=实际时间
//	下面的参数是使用1024Hz时基中断的时候建议的时间值
#define C_DebounceLimit				25		//	去抖时间,KeyScan_ServiceLoop函数以1024Hz的频率被调用,则实际去抖时间为25/1024=24.4ms
#define C_LKeyLimit					1000	//	长按键的判断时间,超过此时间则认为按键为长按键
#define C_FirstRepeatTim			400		//	首次重复按键的判断时间,超过此时间则认为按键开始重复
#define C_RepeatTim					200		//	重复按键判断时间,如果按键不抬起,则以该时间为周期触发按键事件

//	由于本键盘处理程序使用的用于表示按键类型的名称可能并不符合您的习惯
//	您可以自己在这里定义另外的名字,下面给出的是范例
#define NoKeyPress					C_NullKey			//	没有按键
#define ShortKey					C_SKeyState			//	短按键(还没有抬起)
#define ShortUpKey					C_SReleaseKeyState	//	短的已经抬起的按键
#define LongKey						C_LKeyState			//	长按键(还没有抬起)
#define LongUpKey					C_LReleaseKeyState	//	长的已经抬起的按键

//*************************************
//	以下为内部使用,不建议更改
//for ui_KeyScanState
//	用于内部使用,不建议修改
#define C_KeyStateFirst				0x00
#define C_KeyStateDebounce			0x01
#define C_KeyStateRepeat			0x02
#define C_KeyStateReleaseDebounce	0x03
#define C_KeyStateAfterLKey			0x04

//for ui_KeyState
//	用于内部使用,不建议修改
#define C_NullKey					0x00	//	No Key Pressed
#define C_SKeyState					0x01	//	Short Key (Not Released)
#define C_LKeyState					0x02	//	Short Key (Released)
#define C_SReleaseKeyState			0x03	//	Long Key (Not Released)
#define C_LReleaseKeyState			0x04	//	Long Key (Released)

extern void KeyScan_Init();
extern unsigned int KeyScan_GetKey(unsigned int *KeyType);
extern unsigned int KeyScan_CheckRepeat();
extern void KeyScan_ServiceLoop();

//	以上为内部使用,不建议更改
//*************************************

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -