| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /************************************************************************
- * ---- 居加居 ----
- * 文件名: Keys.h
- * 编写人员: Kinve JQ
- * 说明:
- * 版本: V0.1
- * 编写日期: 2018-09-30
- * 程序维护:
- * 维护记录:
- * 2018-09-30.Kinve:1.创建文件
- * 免责声明:
- * (c) Author Kinve JQ. All rights reserved.
- **************************************************************************/
- #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 u8 Fast_Check_CS(void);
- 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 ********/
|