/****************************************************************************************
 * 文件名: kf8s_touch_g.c
 * 版 本:   V2.0
 * 日 期:   2015-5-20
 * 作 者:  上海芯旺微电子技术有限公司
 * 说明：    电容触摸库库变量资源
 ****************************************************************************************/
#include "main.h"
/********************************************************************************************/
//触摸库使用
/********************************************************************************************/
/****以下为触摸算法所用到的通用变量数据，数组的元素个数必须与所开通的通道数一致！！！****/
signed 		char 	_KF8_LIBc_baseline_count_[MX_CH]; 	//用作补偿基准线，满足条件的一定数量后采样IIR滤波方式更新
unsigned 	int  	_KF8_LIBi_buff_hit_[MX_CH]; 	  	//记录当前通道的采样值
unsigned 	int  	_KF8_LIBi_buff_baseline_[MX_CH];	//当前通道的基准值
unsigned 	char 	_KF8_LIBc_touch_count_[MX_CH];  	//记录当前按键的判定时次数，满足TCS_AMOUNT时置按下标志
signed 		char  	_KF8_LIBi_Date_Change_[MX_CH];					//按键采样可上次的变化千分比数值，正数表示低于，负数表示高于
//当前接收数据的通道号和准备采样或正在采样的通道号
unsigned char _KF8_LIBc_channel_;       //当前处理通道位置
//最大通道数，达到该值时，下次通道切换选择第一个映射的通道号
unsigned char const CHS_AMOUNT = MX_CH;
//通道按键按下滤波0到255可设，仅满足最大手指阀，且计数到该数值时判定按键被按下
unsigned char const TCS_AMOUNT = 5;


//异常识别起始在接下来的0到255个扫描周期同步基准，不按键判断,考虑拨水，可适当延长次数，仅干扰可减小次数
unsigned char const _KF8_Disturb_Protect_Circle_=100;//50;

//双键允许时间设定，有效参数11-65535，当为0时，限定时间概念失效
/**效果说明：如首个按键识别后，在接下来时间内允许组合双键，超过时间仅识别首个按键(单键)**/
/**设置说明：这里的数值为扫描循环周期，示例：如800,约时间(800乘（通道数4)乘(单通道处理时间1ms)=3秒**/
unsigned int const _KF8_DoubleKey_Compages_Limitable_Circle_=300;

//按键最长有效时间设定，有效参数1-65535，当为0时，最长时间概念失效
/**效果说明：如按键最长时间为35秒，超过的计为异常，超时的清除标志，失效时无时长概念**/
/**设置说明：这里的数值为扫描循环周期，示例：如8000,约时间(8000乘（通道数4)乘(单通道处理时间1ms)=32秒**/
unsigned int  const _KF8_Key_Max_Pressed_Limitable_Circle_=8000;
//更新基准线快慢参数，值越小更新的约快，正负0-125可设，建议为按键有效计数的正数倍
signed char const _KF8_BaseLine_Update_Circle_Count_For_UP_=64;    //正方向计数到采样IIR滤波
signed char const _KF8_BaseLine_Update_Circle_Count_For_Down_=-64;   //负方向计数到采样IIR滤波，对等地位

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

//量化定义向上/向下变化率多于x属于突变，突变计数，多于一定数量属于异变
signed char const _KF8_BasicLine_UP_Noise_Threshold_=-20;
signed char const _KF8_BasicLine_Down_Noise_Threshold_=20;
signed char const _KF8_Data_Steady_Threshold_Set_=12;  //上下次波动限定，低于属于趋势稳定
//量化参考通道变化率多于x属于电源波动
signed char const _KF8_Inside_Reference_Channel_Disturb_Threshold_Set_=15;  //仅用于参考通道


//使用的通道数据及通道号，这里需和芯片对应，如CT3写3，不同芯片的内部参考通道可能不同，需要_KF8_Inside_Reference_Channel_Declare_定义，如这为CT10
unsigned char const _KF8_TOUCH_CH_EN[MX_CH]={
										0,
										1,
										2,
										3,
										4,
										5,
										6,
										7,
							};
unsigned char const _KF8_Inside_Reference_Channel_Declare_=20; //内容值为参考通道，不使用时赋予一个不存在的值即可
//手指阈值与基准线千分比的上下限配置,调节灵敏度，值越小，灵敏度越高
/**这里调整无水时按下需要幅度，幅度不够时判断周边是否进入水模式*/
signed char const _KF8_Config_Finger_Threshold[MX_CH]={
										50,
										50,
										50,
										50,
										50,
										50,
										50,
										50,
									};
unsigned int _KF8_LIBi_channel_flag_;  //对外提供按键信息
/********************************************************************************************/
//触摸库使用资源结束
/********************************************************************************************/
/********************触摸通道配置结束****************************************************/
