Files
RS485_T1_Transition/Source/include/apt32f102_tkey.h
yeyangwen 5a726f7378 feat:修改设备类型
feat:修改为红外转发设备,将中弘网关协议转换为主机红外协议
2026-02-09 17:48:39 +08:00

184 lines
5.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
******************************************************************************
* @file apt32f102_tkey.h
* @author APT AE Team
* @version V1.01
* @date 2019/04/05
******************************************************************************
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
******************************************************************************
*/
#ifndef _apt32f102_TK_H
#define _apt32f102_TK_H
#include "apt32f102.h"
/**
* @brief tkey mode register
*/
typedef enum
{
TK_HM_DIS = 0<<0,
TK_HM_EN = 1<<0,
}TKEY_HMEN_TypeDef;
/**
* @brief tkey mode register
*/
typedef enum
{
TK_SINGLE = 0<<1,
TK_SEQ = 1<<1,
}TKEY_MODE_TypeDef;
/**
* @brief tkey ckspr register
*/
typedef enum
{
TK_CKSPR_DIS = 0<<9,
TK_CKSPR_EN = 1<<9,
}TKEY_CKSPR_TypeDef;
/**
* @brief tkey CKRND register
*/
typedef enum
{
TK_CKRND_DIS = 0<<10,
TK_CKRND_EN = 1<<10,
}TKEY_CKRND_TypeDef;
/**
* @brief tkey CKFEQ register
*/
typedef enum
{
TK_CKFEQ_LOW = 0<<11,
TK_CKREQ_HIGH = 1<<11,
}TKEY_CKFEQ_TypeDef;
/**
* @brief tkey RSSEL register
*/
typedef enum
{
TK_RSSEL_OVW = 0<<12,
TK_RSSEL_OverTHR = 1<<12,
}TKEY_RSSEL_TypeDef;
/**
* @brief tkey IDLEP register
*/
typedef enum
{
TK_IDLEP_DIS = 0<<14,
TK_IDLEP_EN = 1<<14,
}TKEY_IDLEP_TypeDef;
/**
* @brief tkey DSR register
*/
typedef enum
{
TK_DSR_Z = 0<<16,
TK_DSR_LOW = 1<<16,
TK_DSR_HIGH = 2<<16,
}TKEY_DSR_TypeDef;
/**
* @brief tkey TSCANSTB register
*/
typedef enum
{
TK_STB_1 = 0<<20,
TK_STB_2 = 1<<20,
TK_STB_3 = 2<<20,
TK_STB_4 = 3<<20,
}TKEY_TSSTB_TypeDef;
/**
* @brief tkey OTHRCN register
*/
typedef enum
{
TK_DCKDIV_0 = 0<<12,
TK_DCKDIV_2 = 1<<12,
TK_DCKDIV_4 = 2<<12,
TK_DCKDIV_8 = 3<<12,
}TKEY_DCKDIV_TypeDef;
#define TK_PSEL_FVR 0
#define TK_PSEL_AVDD 1
#define TK_FVR_2048V 0
#define TK_FVR_4096V 1
#define TK_EC_1V 0
#define TK_EC_2V 1
#define TK_EC_3V 2
#define TK_EC_3_6V 3
U32_T TK_IO_ENABLE; //Tkey IO使能 bit=1 表示使能对应的 TCHx 做 touch key 功能,低位至高位的顺序对应 TCH0~TCH16
U16_T TK_senprd[17]; //Tkey 通道扫描周期配置 值越大灵敏度越高,但不能超过理论值否则按键无法扫描通过,常用值不大于 150
U16_T TK_Triggerlevel[17]; //Tkey 通道触发门槛值配置 值越大门槛值越高,取值范围为按键差值的 50%~60%,未使用的通道设置成 0xFF
U8_T Press_debounce_data; //Tkey 触发去抖配置 按下去抖 1~10默认配置为 5
U8_T Release_debounce_data; //Tkey 释放去抖配置 释放去抖 1~10默认配置为 5
U16_T TK_icon[17];
U8_T MultiTimes_Filter; //OFFSET 滤波倍数 大于等于 4 时,表示开启相应的倍数滤波;小于 4 时表示倍数滤波关闭;默认配置关闭
U8_T Valid_Key_Num; //最多有效按键个数 此配置表示允许同时按下按键时最多有效个数。默认为 4
U8_T Key_mode; //Tkey 按键模式 0 表示单键模式1 表示多键模式
U8_T Base_Speed; //Baseline 更新速度 数值越小baseline 更新速度越快数值越大baseline 更新速度越慢;默认为 10 约 100ms
U32_T TK_longpress_time; //按键长按强制更新时间设置 长按键强制更新配置。时间= TK_longpress_time*1s默认 16 秒
U32_T TK_BaseCnt; //按键扫描基准时间配置 若系统时钟修改时需要修改此参数,保证基准时间为 10ms计算公式 TK_BaseCnt=10ms*PCLK/8-1默认 59999 数值基于 48MHz
U16_T TK_PSEL_MODE;
U16_T TK_FVR_LEVEL;
U16_T TK_EC_LEVEL;
U8_T TK_Lowpower_mode;
U8_T TK_Lowpower_level;
U8_T TK_Wakeup_level;
//****************************************************************
#define TK_CLK_EN (TKEY->CLKEN|=0X01)
#define TK_CLK_DIS (TKEY->CLKEN&=0XFFE)
#define TK_SCANTIME_DIS (0<<12)
#define TK_SCANTIME_1ms (1<<12)
#define TK_SCANTIME_1_5ms (2<<12)
#define TK_SCANTIME_2ms (3<<12)
#define TK_SCANTIME_3ms (4<<12)
#define TK_SCANTIME_5ms (5<<12)
#define TK_SCANTIME_10ms (6<<12)
#define TK_SCANTIME_100ms (7<<12)
#define TKEY_TCHEN(val) (val) /**< TKEY CH Enable */
#define TKEY_ICON(val) (((val) & 0x0Ful) << 8)
#define TKEY_START (0x01ul << 0)
#define TKEY_SINDNE (0x01ul << 0)
#define TKEY_DNE (0x01ul << 1)
#define TKEY_THR (0x01ul << 2)
#define TKEY_FLW (0x01ul << 3)
#define TKEY_OVW (0x01ul << 4)
#define TKEY_TIME (0x01ul << 5)
#define TCH_EN(val) (0x01<<val)
extern void tk_init(void);
extern void tk_Reinit(void);
extern void tk_prgm(void);
extern void TK_Baseline_prog(void);
extern void tk_parameter_init(void);
extern volatile U16_T offset_data0_abs[17];
extern volatile U16_T offset_data1_abs[17];
extern volatile U16_T offset_data2_abs[17];
extern volatile U16_T sampling_data0[17];
extern volatile U16_T baseline_data0[17];
extern volatile S16_T offset_data0[17];
extern volatile U16_T sampling_data1[17];
extern volatile U16_T baseline_data1[17];
extern volatile S16_T offset_data1[17];
extern volatile U16_T sampling_data2[17];
extern volatile U16_T baseline_data2[17];
extern volatile S16_T offset_data2[17];
extern volatile U32_T Key_Map;
extern void TK_setup_sleep(void);
extern void TK_quit_sleep(void);
extern volatile U8_T base_update_f;
#endif /**< apt32f102_tkey.h */