按键事件检测与事件处理
async 异步
inquire 询问
synch 同步
1 typedef struct button { 2 uint16_t ticks; 3 uint8_t repeat : 4; 4 uint8_t event : 4; 5 uint8_t state : 3; 6 uint8_t debounce_cnt : 3; 7 uint8_t active_level : 1; 8 uint8_t button_level : 1; 9 uint8_t (*hal_button_Level)(void); 10 BtnCallback cb[number_of_event]; 11 struct button* next; 12 }button;
值得学习的地方:
uint8_t event :4;
uint8_t (*hal_button_Level)(void); 函数指针
struct button *next; 链表
1 #define EVENT_CB(ev) if(handle->cb[ev]) handle->cb[ev]((button*)handle)
文章地址:https://github.com/0x1abin/MultiButton
如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。

浙公网安备 33010602011771号