📄 key.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 + -