/****************************************************************************************
 * 文件名: kf8s_touch_w.h
 * 版 本:   V2.0
 * 日 期:   2015-5-20
 * 作 者:  上海芯旺微电子技术有限公司
 * 说明：    电容触摸库函数头文件
 ****************************************************************************************/

#ifndef KF8S_TOUCH_W_H_
#define KF8S_TOUCH_W_H_

#include "main.h"

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

extern unsigned int const 	_KF8_Disturb_Protect_Circle_;//异常保护时间
extern unsigned int const 	_KF8_DoubleKey_Compages_Limitable_Circle_;//允许双键进入时间限定
extern unsigned int  const 	_KF8_Key_Max_Pressed_Limitable_Circle_;//最长按键有效时间
extern signed char const 	_KF8_BaseLine_Update_Circle_Count_For_UP_;    //向上更新计数到采样IIR滤波
extern signed char const 	_KF8_BaseLine_Update_Circle_Count_For_Down_; 	 //向下更新计数

//同时变化通道数属于异变，主要用于向下,最小值2，最大值根据通道数量
extern unsigned char const  _KF8_Define_Disturb_Channels_Amount_;

//量化定义向上/向下变化率多于x属于突变，突变计数，多于一定数量属于异变
extern signed char const _KF8_BasicLine_UP_Noise_Threshold_;
extern signed char const _KF8_BasicLine_Down_Noise_Threshold_;
extern signed char const _KF8_Data_Steady_Threshold_Set_;  //上下次波动
//量化参考通道变化率多于x属于电源波动
extern signed char const _KF8_Inside_Reference_Channel_Disturb_Threshold_Set_;  //仅用于参考通道

extern unsigned int _KF8_LIBi_channel_flag_;

extern unsigned char 		_KF8_LIBc_channel_; //采集了新数据的通道号
extern unsigned char 		_KF8_LIBc_channel_Buf; // 当前要被采集或正在采集的通道号
extern unsigned char const 	_KF8_Inside_Reference_Channel_Declare_;//引入基准通道的通道号值

extern signed int const 	_KF8_Config_Finger_Threshold[MX_CH];
extern unsigned char const  _KF8_Water_Monitor_;
extern signed int const 	_KF8_CONFIG_FINGER_THRESHOLD_IN_WATER_[MX_CH];
//双键定义
extern unsigned char const  Double_Key_SET_EN_1;
extern unsigned char const  Double_Key_SET_EN_2;
extern unsigned char const  Double_Key_SET_EN_3;

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

extern signed int  			_KF8_LIBi_Date_Change_[MX_CH];
extern signed char 			_KF8_LIBc_baseline_count_[MX_CH];  //用作基准线计数值
extern unsigned int  		_KF8_LIBi_buff_hit_[MX_CH];      //保存采样值
extern unsigned int  		_KF8_LIBi_buff_baseline_[MX_CH]; //保存基准线
extern unsigned char 		_KF8_LIBc_touch_count_[MX_CH];	  //按键识别计数，按键滤波
/********************************************************************************************/
//声明给触摸库使用结束
/********************************************************************************************/
//-------------------------------------------------------------------------------------------//
/********************************************************************************************/
//触摸库函数声明
/********************************************************************************************/
//获取当前库的版本号
unsigned char 	_KF8S_Get_Ver_Waterproof_();
// 参数更换   0：选用 T1H T1L PWM不可用 ； 1：选用T1U，T3L但仅适合E03版本芯片；2：选用T1U，T3L，满足E05及以后版本芯片。
void _KF8S_Lib_Set_Waterproof_Parameter(unsigned char parameterin);
//初始化电容触摸
void 			_KF8S_Init_Touch_Waterproof_();
//电容触摸通道处理
void 			_KF8S_Touch_Process_Waterproof_();
//简化接收开启函数，仅调试曲线时用
void 			_KF8S_Touch_TEST_Waterproof_();

#endif /*  KF8_LIB_TOUCH_H_ */
