morway 发表于 2025-2-15 10:44:25

触摸按键唤醒STOP模式时,时间时长时短 | 了解了

您好,在使用触摸按键唤醒STOP模式时,可以唤醒功能正常,但是有的时候触摸不到1s就唤醒了,有的时候2s,唤醒时间时长时短不相等,而且明显感觉差别很大,可能是哪里的问题?


配置相关代码

    TSCTRL &= 0x73;   //暂停扫描
    TSTH00 = TK_zero-T_KeyPress/2;      //设置唤醒门槛值 = 0点(未触摸)值 - 触摸变化值/2
    TSTH01 = TK_zero-T_KeyPress/2;      //设置唤醒门槛值 = 0点(未触摸)值 - 触摸变化值/2
    TSTH02 = TK_zero-T_KeyPress/2;      //设置唤醒门槛值 = 0点(未触摸)值 - 触摸变化值/2
    TSTH03 = TK_zero-T_KeyPress/2;      //设置唤醒门槛值 = 0点(未触摸)值 - 触摸变化值/2
    TSTH04 = TK_zero-T_KeyPress/2;      //设置唤醒门槛值 = 0点(未触摸)值 - 触摸变化值/2


    TSCHEN1 = 0x1f;      //TK00~TK07 (低功耗模式建议只保留一个触摸按键做唤醒用,其它按键的触摸功能禁用以降低功耗)
    TSCHEN2 = 0x00; //TK08~TK15
    TSWUTC = 250;      //唤醒频率 = F32K/(32*8*TSWUTC)这里等于32000/(32*8*250)=0.5Hz, 理论应该是触摸2s唤醒??
                                  //还是TSWUTC设置的是扫描频率,如果扫描周期刚开始触摸,唤醒时间就长点;如果扫码周期快结束触摸,唤醒时间就短点?????
    IRC32KCR = 0x80;    //启动内部32K IRC
    while (!(IRC32KCR & 1)); //等待时钟稳定
    TSCTRL = (1<<3) + (1<<2) + 0;      //关闭触摸模块, 允许16位数字比较器, 允许低功耗唤醒。



晓飛飛 发表于 2025-2-15 11:10:11

触摸唤醒的本质还是基于低频时钟周期性唤醒查询触摸按键状态实现的,因此,唤醒周期越大,唤醒延迟也就越大,
另外,由于触摸值的不确定性和触摸时机配合的问题,就会产生触发延迟不确定的情况,
这就像坐地铁,到站台遇到门关了和5s后关门可能会让你多等待一趟车的时间,
要改善体验就需要牺牲功耗,减小唤醒时间周期,改善触摸按键结构提高触摸稳定性,

DebugLab 发表于 2025-2-15 11:12:43

存在时间同步的问题,2s扫描1次,在第0.5s触摸就是1.5s响应,在第1.5s触摸就是0.5s响应

morway 发表于 2025-2-15 11:21:06

好的,了解。谢谢两位大神{:4_174:}
页: [1]
查看完整版本: 触摸按键唤醒STOP模式时,时间时长时短 | 了解了