1 Star 0 Fork 8

辛晓宇/vtor_elec_module

forked from vtor3478/vtor_elec_module 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vtor_key.h 2.09 KB
一键复制 编辑 原始数据 按行查看 历史
vtor3478 提交于 2023-11-19 23:41 . 精简开关宏
#ifndef __VTOR_KEY_H
#define __VTOR_KEY_H
#ifdef __cplusplus
extern "C" {
#endif
#include "vtor_elec_module_config.h"
#ifdef __VTOR_KEY__
// 间隔扫描,单位为ms 与 消抖时长
// 允许用户自己设置扫描时间
#ifdef VTOR_KEY_CONFIG_BY_USERSELF
#else
#define VTOR_KEY_TIME_SHAKE 20
#define VTOR_KEY_TIME_LONG_DOWN 200
#define VTOR_KEY_TIME_LONG_UP 200
#define VTOR_KEY_TIME_MAX 1000
#endif // VTOR_KEY_CONFIG_BY_USERSELF
// 按键电平
#define VTOR_KEY_LEVEL_DOWN 0
#define VTOR_KEY_LEVEL_UP 1
// 按键状态
#define VTOR_KEY_STATS_SHAKE 0
#define VTOR_KEY_STATS_UP 1
#define VTOR_KEY_STATS_DOWN 2
#define VTOR_KEY_STATS_LONG_DOWN 3
#define VTOR_KEY_STATS_LONG_UP 4
// 组合按键,当弹起时才相应
#define VTOR_KEY_COMBINE_NULL 0
#define VTOR_KEY_COMBINE_SHORT_CLICK 1
#define VTOR_KEY_COMBINE_LONG_CLICK 2
#define VTOR_KEY_COMBINE_SS_CLICK 11
#define VTOR_KEY_COMBINE_SSS_CLICK 111
#define VTOR_KEY_COMBINE_LL_CLICK 22
#define VTOR_KEY_COMBINE_LLL_CLICK 222
#define VTOR_KEY_COMBINE_SL_CLICK 12
#define VTOR_KEY_COMBINE_LS_CLICK 21
#define VTOR_KEY_COMBINE_SSL_CLICK 112
#define VTOR_KEY_COMBINE_LSS_CLICK 211
#define VTOR_KEY_COMBINE_SLL_CLICK 122
#define VTOR_KEY_COMBINE_LLS_CLICK 221
#define VTOR_KEY_COMBINE_SLS_CLICK 121
#define VTOR_KEY_COMBINE_LSL_CLICK 212
struct VtorKey
{
uint8_t lastLevel;
uint8_t curLevel;
uint8_t lastState;
uint8_t curState;
uint16_t holdTime; // 电平稳定时间(用于消抖与确定长按)
uint8_t combineAction; // 单击,双击,长按等所有情况
struct VtorKey *next;
};
extern struct VtorKey* vtorKeyHeader;
// 用户自行实现初始化与获取电平
void VtorKey_Init(void);
void VtorKey_GetLevel(void);
// 定时调用,需要有大概调用时间
uint8_t VtorKey_Scan(uint16_t scanTime);
// 用户重写回调函数,内部处理对应情况
void VtorKey_CombineHandler(struct VtorKey* key);
void VtorKey_PressHandler(struct VtorKey* key);
void VtorKey_ReleaseHandler(struct VtorKey* key);
#endif // ELEC_MODULE_VTOR_KEY_ENABLED
#ifdef __cplusplus
}
#endif
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xin-xiaoyu/vtor_elec_module.git
git@gitee.com:xin-xiaoyu/vtor_elec_module.git
xin-xiaoyu
vtor_elec_module
vtor_elec_module
main

搜索帮助