有没有人能解说这例程序中这个程序的意思?
delay_ms(50);// B_TK_Lowpass = 0; //禁止低通滤波
B_TK_Lowpass = 1; //允许低通滤波
for(read_cnt=0; read_cnt<40; read_cnt++) //读40次键, 将此值作为未触摸时的0点, 要求上电时不要触摸按键
{
// TSCTRL = (1<<7) + (1<<6) +3; //开始扫描, 4次平均, 读数大约为无平均的一半
TSCTRL = (1<<7) + (1<<6) +1; //开始扫描, 2次平均, 读数大约为无平均的一半
// TSCTRL = (1<<7) + (1<<6); //开始扫描, 只转换1次, 无平均
B_ReadKeyOk = 0;
for(i=0; i<100; i++)
{
if(B_ReadKeyOk) break;
delay_ms(1);
}
}
for(i=0; i<16; i++) TK_zero = TK_cnt; //保存0点
问题一,这个重复启动40次有什么意义,最络保存的零点,不是就是最后一次的采集值吗?? 第二:中断中
if(!B_TK_Lowpass) TK_cnt = TSDAT/4; //保存某个通道的读数 无低通滤波
else TK_cnt = ((TK_cnt * 3)>>2) + TSDAT/16; //保存某个通道的读数 低通滤波
if(j == 15) B_ReadKeyOk = 1; //读完一次循环
这个除4与除16是什么意思??例程目的是让人明白,而不是越来不糊涂!!!!STC写例程的来解说下,
页:
[1]