///****************************************************************************************
// * 文件名: kf8spsw_lib_touch.c
// * 版 本:   V2.0
// * 日 期:   2016-1-20
// * 作 者:  上海芯旺微电子技术有限公司
// * 说明：    电容触摸库函数文件
// *
// ****************************************************************************************/
#include "kf8spsw_lib_touch.h"		//引入触摸库函数
/********************************************************************************************/
//触摸库使用
/********************************************************************************************/
//传递系统最大通道数量
unsigned char const CHS_AMOUNT = MX_CH;
//满足阀值的次数滤波识别一个状态的转换，水位监测不需要太快。和模型相关
unsigned  int const TCS_AMOUNT = 200;

//量化参考通道变化率多于x属于波动,该值不易过大，因大的时间如果时间到更新后普通通道就有对应的误差，容易误识别
signed int const 		_KF8_Inside_Reference_Channel_Disturb_Threshold_Set_=15;  //参考通道抖动识别阀值

unsigned 	int  		_KF8_Disturb_Protect_Circle_;			// 抖动保护计时
unsigned 	int  const	_KF8_Disturb_Protect_Circle_Define=20; // 抖动保护圈数

unsigned 	int  		_KF8_Up_BaseLine_Circle_; 				// 参考稳定补偿基准线计数
unsigned 	int  const	_KF8_Up_BaseLine_Circle_Define=200;		// 参考稳定n圈后反算更新一次基准，结合抖动识别阀

//使用的通道数据及通道号，这里需和芯片对应，如CT3写3
unsigned char const _KF8_TOUCH_CH_EN[MX_CH]={
										10,	// 上
										9,	// 中
										8,	// 下
										11, // 引入参考
										2,	// P16
										4,	// P20
										5,	// P21
									};
// 算法中比引入参考通道数组位置
unsigned char const _KF8_Inside_Reference_Channel_Order=3; 	//上面数组下标对应通道为参考通道

// 识别阀值
signed int const _KF8_Config_Finger_Threshold[MX_CH]={
										38,// 上
										30,// 中
										20,// 下
										1000,// 参考无作用
												};
// 弹起阀值
signed int const CONFIG_NO_FINGER_THRESHOLD[MX_CH]={
										20,// 上
										20,// 中
										17,// 下
										800,// 参考无作用
												};

volatile unsigned char _KF8_LIBc_channel_;       //当前处理通道位置
volatile unsigned int _KF8_LIBi_channel_flag_;  //对外提供按键信息
/****以下为触摸算法所用到的通用变量数据，数组的元素个数必须与所开通的通道数一致！！！****/
unsigned 	int  	_KF8_LIBi_buff_hit_[MX_CH]; 	  	//记录当前通道的采样值
unsigned 	int  	_KF8_LIBi_buff_baseline_[MX_CH];	//当前通道的基准值
unsigned 	int  	_KF8_LIBi_buff_refline_[MX_CH];		//当前设备的出厂参考值

unsigned 	int 	_KF8_LIBc_touch_count_[MX_CH];  	//记录当前按键的判定时次数，满足TCS_AMOUNT时置按下标志
signed 		int  	_KF8_LIBi_Date_Change_[MX_CH];		//按键采样可上次的变化千分比数值，正数表示低于，负数表示高于
/********************************************************************************************/
//触摸库使用资源结束
/********************************************************************************************/


