66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
/*
|
|
* @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
|