#include #include "key.h" #include "log.h" #include "tool.h" #include "t_key.h" #include uint8_t Key_Pin(uint8_t l) { uint8_t k = rand() % 2; // LOGT("KEY", "P:%d-%d", l,k); return k; } void Key_Call(Key_t *key) { switch (key->event) { case KEY_PRESS_DOWN: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "按下事件"); break;// 按下事件 case KEY_PRESS_UP: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "弹起事件"); break;// 弹起事件 case KEY_PRESS_REPEAT: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "重复按下事件"); break;// 重复按下事件 case KEY_SINGLE_CLICK: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "单击事件"); break;// 单击事件 case KEY_DOUBLE_CLICK: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "双击事件"); break;// 双击事件 case KEY_LONG_PRESS_START: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "长按开始事件"); break;// 长按开始事件 case KEY_LONG_PRESS_HOLD: LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "长按保持事件"); break;// 长按保持事件 } } void Test_Key() { Key_t k1, k2; key_init(&k1, Key_Pin, 1, 0); key_init(&k2, Key_Pin, 1, 1); key_attach(&k1, KEY_ALL_EVENT, Key_Call); key_attach(&k2, KEY_ALL_EVENT, Key_Call); key_start(&k1); key_start(&k2); while (1) { // 每5ms调用一次key_ticks函数 key_ticks(); // Sleep(5); // 使用Windows平台的Sleep函数进行5ms延时 } }