diff --git a/Power_Pico/User/Tasks/Src/user_HardwareInitTask.c b/Power_Pico/User/Tasks/Src/user_HardwareInitTask.c index 32e2d99..e84e27a 100644 --- a/Power_Pico/User/Tasks/Src/user_HardwareInitTask.c +++ b/Power_Pico/User/Tasks/Src/user_HardwareInitTask.c @@ -80,7 +80,7 @@ void HardwareInitTask(void *argument) // HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4); // key - Key_Port_Init(); + Key_Init(); // system settings from eeprom if(!EEPROM_Init_Check()) { diff --git a/Power_Pico/User/Tasks/Src/user_KeyTask.c b/Power_Pico/User/Tasks/Src/user_KeyTask.c index 486a276..b0d1949 100644 --- a/Power_Pico/User/Tasks/Src/user_KeyTask.c +++ b/Power_Pico/User/Tasks/Src/user_KeyTask.c @@ -22,13 +22,12 @@ */ void KeyTask(void *argument) { - uint8_t keystr = 0; + key_event_t key_event; while(1) { - keystr = KeyScan(0); - if(keystr != 0) + if(Key_Scan(&key_event)) { - osMessageQueuePut(Key_MessageQueue, &keystr, 0, 1); + osMessageQueuePut(Key_MessageQueue, &key_event, 0, 1); // beep if(Sys_Get_KeySoundEnable()) { diff --git a/Power_Pico/User/Tasks/Src/user_TasksInit.c b/Power_Pico/User/Tasks/Src/user_TasksInit.c index a582fd6..3c2dd0c 100644 --- a/Power_Pico/User/Tasks/Src/user_TasksInit.c +++ b/Power_Pico/User/Tasks/Src/user_TasksInit.c @@ -5,6 +5,9 @@ #include "sys.h" #include "stdio.h" +//bsp +#include "key.h" + //gui #include "lvgl.h" #include "lv_lib_pm.h" @@ -91,7 +94,7 @@ void User_Tasks_Init(void) /* start timers, add new ones, ... */ /* add queues, ... */ - Key_MessageQueue = osMessageQueueNew(4, 1, NULL); + Key_MessageQueue = osMessageQueueNew(4, sizeof(key_event_t), NULL); /* add threads, ... */ HardwareInitTaskHandle = osThreadNew(HardwareInitTask, NULL, &HardwareInitTask_attributes); @@ -127,11 +130,11 @@ void TaskTickHook(void) */ void LvHandlerTask(void *argument) { - uint8_t keystr = 0; + key_event_t key_event; while(1) { - if(osMessageQueueGet(Key_MessageQueue, &keystr, NULL, 1)==osOK) { - lv_lib_pm_handle_key_event(keystr); + if(osMessageQueueGet(Key_MessageQueue, &key_event, NULL, 1)==osOK) { + lv_lib_pm_handle_key_event(&key_event); } lv_task_handler(); osDelay(1);