| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /**
- * @File: Keys.c
- * @Author: Kinve JQ
- * @Version: V0.1
- * @Date: 2018.09.30
- * @Brief:
- * @Modify:
- 2018.09.30.Kinve:1.创建文件
- **/
- #ifndef __KEYS_H_
- #define __KEYS_H_
- #include "Common.h"
- /* 宏定义 --------------------------------------------------------------------*/
- /*
- 短按: 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 (80/KEY_TIME) //按下<80ms,取消
- #define SHORT_KEY_DOWN (320/KEY_TIME) //短按80ms-280ms
- #define LONG_KEY_DOWN (2500/KEY_TIME) //长按2.5s
- #define CANCEL_KEY_UP (80/KEY_TIME) //松开超过80ms,取消
- #define MAL_KEY_DOWN (10000/KEY_TIME) //长按超过10s,故障
- #define HANDLE_KEY_TIME (100/KEY_TIME) //按键处理时间
- /* 类型定义 ------------------------------------------------------------------*/
- enum KEY_SIG_DEF
- {
- KEY_CLICK_CS, //测试
- KEY_CLICK_JS, //计时
- KEY_LONG_CS, //长按测试
- KEY_LONG_JS, //长按计时
- KEYSIG_MAX
- };
- /* 常量定义 ------------------------------------------------------------------*/
- enum KEY_DEF
- {
- KEY_CS, //测试
- 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
- {
- u8 ID; //按键号
- u8 (*GetKey)(void); //获取状态:1.按下, 0.松开
- u8 State; //状态
- u16 DnTime; //down计时
- u16 UpTime; //up计时
- u8 HitNum; //单击计次
- u8 Res; //最后结果
- } pKey;
- extern volatile pKey Keys[KEY_MAX];
- /* 函数定义------------------------------------------------------------------ */
- extern void ScanKey ( void );
- extern void Keys_Init( void );
- extern void Keys_All_Handler(void);
- extern void Keys_Even(void); //10ms
- #endif
- /********************* (C) COPYRIGHT Kinve JQ *******END OF FILE ********/
|