/****************************************************************************************
 * 文件名: kf8sptsw_lib_touch.h
 * 版 本:   V3.0
 * 日 期:   2014-6-28
 * 作 者:  上海芯旺微电子技术有限公司
 * 说明：    电容触摸库函数头文件
 ****************************************************************************************/
#ifndef KF8_LIB_TOUCH_H_
#define KF8_LIB_TOUCH_H_

#include "main.h"
#define MX_CH 4                    //最多的触摸通道数，将本次所开通的总的触摸通道数写在此，即可
/********************************************************************************************/
//声明给触摸库使用
/********************************************************************************************/
extern unsigned char const CHS_AMOUNT; //最大通道号
extern unsigned int const TCS_AMOUNT;//按下延时

//量化参考通道变化率多于x属于电源波动
extern signed int const _KF8_Inside_Reference_Channel_Disturb_Threshold_Set_;  //仅用于参考通道
extern unsigned 	int  		_KF8_Disturb_Protect_Circle_;	// 抖动内计数
extern unsigned 	int  const	_KF8_Disturb_Protect_Circle_Define;// 抖动后需计满个数去除抖动

extern unsigned 	int  		_KF8_Up_BaseLine_Circle_; // 参考稳定补偿基准线计数
extern unsigned 	int  const	_KF8_Up_BaseLine_Circle_Define;// 基准线稳定200圈后反算更新一次基准

extern volatile unsigned int _KF8_LIBi_channel_flag_;

extern unsigned char const _KF8_Inside_Reference_Channel_Order; // 基准通道对应的数组小标

extern signed int const 	_KF8_Config_Finger_Threshold[MX_CH];
extern signed int const 	CONFIG_NO_FINGER_THRESHOLD[MX_CH];


extern unsigned char const 	_KF8_TOUCH_CH_EN[MX_CH]; //逻辑化通道扫描的顺序

extern signed int  		_KF8_LIBi_Date_Change_[MX_CH];

extern volatile unsigned char _KF8_LIBc_channel_;       //当前处理通道位置

extern unsigned int  		_KF8_LIBi_buff_hit_[MX_CH];      //保存采样值
extern unsigned int  		_KF8_LIBi_buff_baseline_[MX_CH]; //保存基准线
extern unsigned int  		_KF8_LIBi_buff_refline_[MX_CH];		//当前设备的出厂参考值
extern unsigned int 		_KF8_LIBc_touch_count_[MX_CH];	  //按键识别计数，按键滤波

extern volatile unsigned char Arr_erom_SW_[24];			// BEE 操作数组区
/********************************************************************************************/
//声明给触摸库使用结束
/********************************************************************************************/
//初始化电容触摸
void _KF8spsw_LIBf_init_touch_();
//电容触摸通道处理
void _KF8spsw_LIBf_touch_process_();
// 参数更换   0：选用 T1H T1L PWM不可用 ； 1：选用T1U，T3L但仅适合E03版本芯片 ；2：选用T1U，T3L，满足E05及以后版本芯片。
void _KF8spsw_Lib_SET_MCU_Parameter(unsigned char parameterin);

void read_data_eep_tsw_();	// 读通道信息到 Arr_erom_SW_ ，读异常时会重复读
void write_eep_tsw_();		// 写最多12个通道信息到BEE，写异常时会重复写。

#endif /*  KF8_LIB_TOUCH_H_ */

