sky999 发表于 2024-3-19 13:40:16

梁工 发表于 2024-3-19 12:54
单看这段初始化代码没啥问题。还要注意睡眠前处理,还要有中断函数,请参考我的程序。

        //        TSCHEN1 = 0x ...

改成这样后,确实是进入睡眠,电流也只有0.05mA,但是触摸却无法唤醒

                        TSCTRL = (1<<3) + (1<<2) + 0;
                        IE2 |= 0x80;                //允许触摸按键中断
                       
                        Delay1ms(10);
                       
                        PCON = 0X02;                           
                        _nop_();
                        _nop_();
                        _nop_();
                        Delay1ms(10);

                        TSCTRL        =        0X8F;

梁工 发表于 2024-3-19 13:44:21

sky999 发表于 2024-3-19 13:40
改成这样后,确实是进入睡眠,电流也只有0.05mA,但是触摸却无法唤醒




唤醒后不需要延时,直接启动全速扫描。

sky999 发表于 2024-3-19 14:16:12

梁工 发表于 2024-3-19 13:44
唤醒后不需要延时,直接启动全速扫描。
上面这个程序做了几次改动,还是无法退出睡眠模式,
TSCTRL = (1<<3) + (1<<2) + 0;这个代码其实是TSCTRL=0X0C;你们写成这样真不好懂,
但是改成TSCTRL=0X8C就可以退出唤醒了,可是还是0.83mA,头大了

sky999 发表于 2024-3-19 14:45:34

梁工 发表于 2024-3-19 13:44
唤醒后不需要延时,直接启动全速扫描。

现在是偶尔0.05mA,偶尔0.83mA,为什么会这样?

AI-32位8051 发表于 2024-3-19 16:26:14

   应该是程序问题,建议参考官方范例{:handshake:}
页: 1 2 [3]
查看完整版本: 怎么降低功耗延长电池用时 | 应该使用 主时钟停振的/省电模式