| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #ifndef __KEYS_H
- #define __KEYS_H
- #include "TypeDef.h"
- /* 类型定义 ------------------------------------------------------------------*/
- typedef struct aa
- {
- u8 CS: 1 ;
- u8 JS: 1 ;
- u8 CS_L: 1 ;
- u8 JS_L: 1 ;
- u8 e: 1 ;
- u8 f: 1 ;
- u8 g: 1 ;
- u8 h: 1 ;
- } pKeyState ;
- extern pKeyState GROUP_KEY;
- enum KEY_SIG_DEF
- {
- KEY_CLICK_CS, //测试
- KEY_CLICK_JS, //计时
- KEY_LONG_CS, //长按测试
- KEY_LONG_JS, //长按计时
- KEYSIG_MAX
- };
- /* 常量定义 ------------------------------------------------------------------*/
- enum KEY_DEF
- {
- KEY_CS, //测试
- KEY_JS, //计时
- KEY_MAX
- };
- enum KeyState
- {
- KEY_UP_FLAG,
- KEY_DOWN_FLAG
- };
- enum KeyRes
- {
- NO_KEY_FLAG,
- ONE_HITS_KEY_FLAG,
- TWO_HITS_KEY_FLAG,
- THREE_HITS_KEY_FLAG,
- LONG_KEY_FLAG,
- MAX_KEY_FLAG
- };
- typedef struct
- {
- unsigned char ID; //按键号
- unsigned char State; //状态
- unsigned short DnTime; //down计时
- unsigned short UpTime; //up计时
- unsigned char HitNum; //单击计次
- unsigned char Res; //最后结果
- } pKey;
- /* 宏定义 --------------------------------------------------------------------*/
- /*
- 短按: 1次,80ms~280ms(down)
- 长按: 1200ms~>>(down)
- 双击: 2次,80ms~280ms(down) -> 0ms~280ms(up) -> 80ms~280ms(down)
- */
- #define KEY_TIME (20) //10ms任务,扫描一次
- #define CANCEL_KEY_DOWN (60/KEY_TIME) //按下<80ms,取消
- #define SHORT_KEY_DOWN (320/KEY_TIME) //短按80ms-280ms
- #define LONG_KEY_DOWN (3000/KEY_TIME) //长按3s
- #define CANCEL_KEY_UP (80/KEY_TIME) //松开超过80ms,取消
- #define MAL_KEY_DOWN (10000/KEY_TIME) //长按超过10s,故障
- #define HANDLE_KEY_TIME (100/KEY_TIME) //按键处理时间
- /* 函数定义------------------------------------------------------------------ */
- extern void ScanKey ( void );
- extern void Keys_Init( void );
- extern void Keys_All_Handler(void);
- #endif
|