2025-04-26 16:03:23 +08:00

105 lines
3.6 KiB
C

/****************************************************************************
** Filename : key_digital_driver
** Project :
** Module :
** Processor :
** Date/Time :
** Abstract :
** Contents :
** Author : mingyea
** http :
** mail :
** --------------------------------------------------------------------------
**
** --------------------------------------------------------------------------
*****************************************************************************/
#ifndef _KEY_COM_CFG_H_
#define _KEY_COM_CFG_H_
#include "common_types.h"
#include "Cpu.h"
#include "gpio.h"
#include "common_cfg.h"
/*****************************************************************************
* Include Files
*****************************************************************************/
/*****************************************************************************
* Defines
*****************************************************************************/
//单片机平台
#if 0
typedef GPIO_PinType pins_channel_type_t ;
typedef GPIO_LevelType gpio_output_level_e;
#else
#if 0
#ifndef pins_channel_type_t
#define pins_channel_type_t GPIO_PinType
#endif
#ifndef gpio_output_level_e
#define gpio_output_level_e GPIO_LevelType
#endif
#endif
#endif
#define KEY_TIME_UNIT 10u //任务调度的时间
/***各种按键的时间配置部分******/
#if 0
#define KEY_DIGITAL_DRIVER_DEBOUNCE_TIME (30u/KEY_DIGITAL_DRIVER_TIME_UNIT) //按键检测的消抖
#define KEY_DIGITAL_DRIVER_LONG_DOWN_TIME (20000u/KEY_DIGITAL_DRIVER_TIME_UNIT) //按键检测的長按
#define KEY_DIGITAL_DRIVER_STICK_TIME (90000u/KEY_DIGITAL_DRIVER_TIME_UNIT) //按键检测的卡住
#endif
#define KEY_DIGITAL_DRIVER_TIME_UNIT KEY_TIME_UNIT //按键检测的周期
#define KEY_DIGITAL_DITHERING_TIME (30u/KEY_DIGITAL_DRIVER_TIME_UNIT) /*5*10 50MS 去抖时间*/
#define KEY_DIGITAL_LONGDOWN_TIMEOUT (1000u/KEY_DIGITAL_DRIVER_TIME_UNIT)
#define KEY_DIGITAL_VOLICE_LONGDOWN_TIMEOUT (600u/KEY_DIGITAL_DRIVER_TIME_UNIT)
#define KEY_STUCK_TIMEOUT_20S (20000u/KEY_DIGITAL_DRIVER_TIME_UNIT)
#define KEY_STUCK_TIMEOUT_5MIN (300000u/KEY_DIGITAL_DRIVER_TIME_UNIT)
#define KEY_DIGITAL_FAULT_TIMEOUT (300u/KEY_DIGITAL_DRIVER_TIME_UNIT)
#define KEY_ADC_TIME_UNIT KEY_TIME_UNIT //時間周期
#define KEY_ADC_DEBOUNCE_TIME (50u/KEY_ADC_TIME_UNIT)
#define KEY_ADC_LONGPRESS_TIME (1000u/KEY_ADC_TIME_UNIT)
#define KEY_ADC_STICKPRESS_TIME (300000u/KEY_ADC_TIME_UNIT)
#define KEY_ADC_FAULT_TIME (300u/KEY_ADC_TIME_UNIT)
#define KEY_ADC_OTHER_FAULT_TIME (1000u/KEY_ADC_TIME_UNIT)
#define KEY_ADC_MEDIA_STICKPRESS_TIME (20000u/KEY_ADC_TIME_UNIT)
#define KEY_PICK_STICKPRESS_TIME (20000u/KEY_DIGITAL_DRIVER_TIME_UNIT)
#define KEY_DIGITAL_DITHERING_TIME_ID 0u
#define KEY_DIGITAL_LONGDOWN_TIMEOUT_ID (KEY_DIGITAL_DITHERING_TIME_ID+1u)
#define KEY_DIGITAL_STUCK_TIMEOUT_ID (KEY_DIGITAL_LONGDOWN_TIMEOUT_ID+1u)
#define KEY_DIGITAL_FAULT_TIMEOUT_ID (KEY_DIGITAL_STUCK_TIMEOUT_ID+1u)
#define KEY_ADC_DEBOUNCE_TIME_ID (KEY_DIGITAL_FAULT_TIMEOUT_ID+1u)
#define KEY_ADC_LONGPRESS_TIME_ID (KEY_ADC_DEBOUNCE_TIME_ID+1u)
#define KEY_ADC_STICKPRESS_TIME_ID (KEY_ADC_LONGPRESS_TIME_ID+1u)
#define KEY_ADC_FAULT_TIME_ID (KEY_ADC_STICKPRESS_TIME_ID+1u)
#define KEY_ADC_OTHER_FAULT_TIME_ID (KEY_ADC_FAULT_TIME_ID+1u)
#define KEY_TIME_CFG_ID_TOTAL (KEY_ADC_OTHER_FAULT_TIME_ID+1u)
extern const u16 g_key_cfg_times[KEY_TIME_CFG_ID_TOTAL];
/*extern */
#endif /* end __KEY_H */
/*****************************************************************************
** End Of File
******************************************************************************/