/* * @Description: * @Date: 2021-03-10 10:50:02 * @LastEditors: CK.Zh * @LastEditTime: 2021-03-10 11:50:39 * @FilePath: \NaviKit_EC_stm32\App\Inc\th_button.h */ #ifndef __TH_BUTTON_H__ #define __TH_BUTTON_H__ #include "cmsis_os2.h" //pressed time < short press time(ms) #define SHORT_PRESS_TIME 500 //pressed time > long press time(ms) #define LONG_PRESS_TIME 1000 //define exti flag for task-notification / thread-flags typedef enum{ SHUTDOWN_REQ_ACTIVE = 0x01<< 0, SHUTDOWN_REQ_INACTIVE = 0x01<< 1, MOD_SLEEP_ACTIVE = 0x01<< 2, MOD_SLEEP_INACTIVE = 0x01<< 3, PWR_BTN_ACTIVE = 0x01<< 4, PWR_BTN_INACTIVE = 0x01<< 5, CUS_BTN_ACTIVE = 0x01<< 6, CUS_BTN_INACTIVE = 0x01<< 7, }Exti_Flags_t; Exti_Flags_t Exti_Flags; /* Definitions for ButtonDetectTask */ osThreadId_t ExtiServiceTaskHandle; const osThreadAttr_t ExtiServiceTask_attributes; //Timer osTimerId_t PwrBtnLongPressTimerHandle; const osTimerAttr_t PwrBtnLongPressTimer_attributes; osTimerId_t CustBtnLongPressTimerHandle; const osTimerAttr_t CustBtnLongPressTimer_attributes; osTimerId_t PwrBtnShortPressTimerHandle; const osTimerAttr_t PwrBtnShortPressTimer_attributes; osTimerId_t CustBtnShortPressTimerHandle; const osTimerAttr_t CustBtnShortPressTimer_attributes; //Event Flag osEventFlagsId_t ExtiEventFlags; const osEventFlagsAttr_t ExtiEventFlags_attributes; //Task void StartExtiServiceTask(void *argument); //callback void PwrBtnLongPressTimerCallback(void *argument); void CustBtnLongPressTimerCallback(void *argument); void PwrBtnShortPressTimerCallback(void *argument); void CustBtnShortPressTimerCallback(void *argument); #endif