42 lines
941 B
C
42 lines
941 B
C
|
#ifndef _PLCNT_CNT_H_
|
||
|
#define _PLCNT_CNT_H_
|
||
|
|
||
|
//计数参考时钟选择, 频率越高, 精度越高
|
||
|
enum touch_key_clk {
|
||
|
TOUCH_KEY_OSC_CLK = 0,
|
||
|
TOUCH_KEY_MUX_IN_CLK, //外部输入, ,一般不用, 保留
|
||
|
TOUCH_KEY_PLL_192M_CLK,
|
||
|
TOUCH_KEY_PLL_240M_CLK,
|
||
|
};
|
||
|
|
||
|
struct touch_key_port {
|
||
|
u8 port; //触摸按键IO
|
||
|
u8 key_value; //按键返回值
|
||
|
};
|
||
|
|
||
|
struct touch_key_platform_data {
|
||
|
u8 num; //触摸按键个数;
|
||
|
u8 clock; //触摸按键选择时钟;
|
||
|
u8 change_gain; //变化放大倍数
|
||
|
s16 press_cfg; //按下判决门限
|
||
|
s16 release_cfg0; //释放判决门限0
|
||
|
s16 release_cfg1; //释放判决门限1
|
||
|
const struct touch_key_port *port_list; //触摸按键列表
|
||
|
};
|
||
|
|
||
|
|
||
|
/* =========== pclcnt API ============= */
|
||
|
//时钟初始化
|
||
|
void plcnt_clk_init(u8 clk);
|
||
|
|
||
|
//触摸键 IO 初始化
|
||
|
void plcnt_io_init(u8 port);
|
||
|
|
||
|
//获取plcnt计数值
|
||
|
u32 plcnt_delta_cnt_get(u8 port);
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|