给下面的C语言添加详细的注释typedef enum PRESS_DOWN = 0 PRESS_UP PRESS_REPEAT SINGLE_CLICK DOUBLE_CLICK LONG_PRESS_START LONG_PRESS_HOLD number_of_event NONE_PRESSPressEvent;typedef struct Button uint16_t ticks;
/*
- 定义一个枚举类型PressEvent,表示按钮的各种事件
- PRESS_DOWN: 按下按钮
- PRESS_UP: 松开按钮
- PRESS_REPEAT: 按钮重复按下
- SINGLE_CLICK: 单击按钮
- DOUBLE_CLICK: 双击按钮
- LONG_PRESS_START: 长按按钮开始
- LONG_PRESS_HOLD: 长按按钮持续
- number_of_event: 事件数量
- NONE_PRESS: 无按钮事件 */ typedef enum { PRESS_DOWN = 0, PRESS_UP, PRESS_REPEAT, SINGLE_CLICK, DOUBLE_CLICK, LONG_PRESS_START, LONG_PRESS_HOLD, number_of_event, NONE_PRESS }PressEvent;
/*
- 定义一个结构体Button,表示按钮的属性和回调函数
- ticks: 按钮按下的时长
- repeat: 按钮重复次数
- event: 按钮事件
- state: 按钮状态
- debounce_cnt: 按钮抖动计数
- active_level: 按钮活动电平
- button_level: 按钮电平
- button_id: 按钮ID
- hal_button_Level: 获取按钮电平的函数指针
- cb: 按钮事件回调函数数组
- next: 下一个按钮的指针 */ typedef struct Button { uint16_t ticks; uint8_t repeat : 4; uint8_t event : 4; uint8_t state : 3; uint8_t debounce_cnt : 3; uint8_t active_level : 1; uint8_t button_level : 1; uint8_t button_id; uint8_t (hal_button_Level)(uint8_t button_id_); BtnCallback cb[number_of_event]; struct Button next; }Button;
原文地址: https://www.cveoy.top/t/topic/i3xk 著作权归作者所有。请勿转载和采集!