找回密码
 立即注册
查看: 35|回复: 1

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

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 10:44:47

11

主题

29

回帖

169

积分

注册会员

积分
169
发表于 3 天前 | 显示全部楼层 |阅读模式
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[i] = TK_cnt[i];        //保存0点
       

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 10:44:47

11

主题

29

回帖

169

积分

注册会员

积分
169
发表于 3 天前 | 显示全部楼层
问题一,这个重复启动40次有什么意义,最络保存的零点,不是就是最后一次的采集值吗?? 第二:中断中       
if(!B_TK_Lowpass)        TK_cnt[j] = TSDAT/4;        //保存某个通道的读数        无低通滤波
else                                TK_cnt[j] = ((TK_cnt[j] * 3)>>2) + TSDAT/16;        //保存某个通道的读数        低通滤波
                                if(j == 15)        B_ReadKeyOk = 1;        //读完一次循环         
这个除4与除16是什么意思??例程目的是让人明白,而不是越来不糊涂!!!!STC写例程的来解说下,
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-17 14:52 , Processed in 0.149893 second(s), 48 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表