大家好,我正在用USB-I2C bridge 调试CY8C21434单片机的CSD模块,仅测试单个独立按键,可是发现噪声异常大,触摸按键无**常工作,我调了几天仍没找到原因,现在很着急,希望得到各位高手的指点,谢谢。
调试代码如下:
#include <m8c.h> // part specific constants and macros
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
typedef struct I2C_regs
{
INT state; //BYTE state;
INT raw_counts; //WORD raw_counts;
INT baseline; //WORD baseline;
INT diff; //WORD diff;
} I2C_REGS;
I2C_REGS reg_info;
void main()
{
EzI2Cs_SetRamBuffer(sizeof(reg_info), 0, (BYTE *) ®_info);
M8C_EnableGInt;
EzI2Cs_Start();
CSD_Start();
CSD_InitializeBaselines();
CSD_SetDefaultFingerThresholds();
while (1){
CSD_ScanAllSensors();
CSD_UpdateAllBaselines();
M8C_DisableGInt;
reg_info.raw_counts = CSD_waSnsResult[0];
reg_info.baseline = CSD_waSnsBaseline[0];
reg_info.state = (CSD_baSnsOnMask[0] & 1)*10;
reg_info.diff = CSD_waSnsDiff[0];
M8C_EnableGInt;
}
}
参数设置:
调试波形(未按下时):
手指按下 时:
红色的为原始计数值
绿色的为基线
蓝色的为差值
黑色的为按键开启状态
从上图可知,噪声大的完全超出范围,并且我觉得 计数差值=原始计数值-基线值, 但上图似乎并不满足条件,希望得到大家的帮助和指点。 |