105 lines
3.6 KiB
C
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
|
|
******************************************************************************/
|