nbyzs 发表于 2025-9-14 10:44:47

有没有人能解说这例程序中这个程序的意思?

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点
       

nbyzs 发表于 2025-9-14 10:47:28

问题一,这个重复启动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]
查看完整版本: 有没有人能解说这例程序中这个程序的意思?