xhj 发表于 2024-6-3 16:30:35

STC8H3K64S2低功耗时,怎么样关闭T0定时器、AD和IO呀?

STC8H3K64S2低功耗时,怎么样关闭T0定时器、AD和IO呀?

xhj 发表于 2024-6-3 16:36:10

实在没办法了,想用软件复位,但打开软件复位,休眠电流就很大,去掉就好了,怎么回事
int main(void)
{
    if((RSTFLAG & 0x04) == 0x04)
                {
                          RSTFLAG |= 0x04;
                          goto MM;
                }
                 
          wake_up = 0;
          sleep = 1;
    while (1)
    {
                          if(wake_up == 0)
                                {
                                                if(sleep == 1)
                                                {                                                       
       
//                IAP_CONTR |= 0x60;
            // Delay100ms();
                                                                                                               
MM:                                                 P0M0 = 0x00;
                                                                P0M1 = 0xff;
                                                                P1M0 = 0x00;
                                                                P1M1 = 0xff;
                                                                P2M0 = 0x00;
                                                                P2M1 = 0xff;
                                                                P3M0 = 0x00;
                                                                P3M1 = 0xff;
                                                                P4M0 = 0x00;
                                                                P4M1 = 0xff;
                                                                P5M0 = 0x00;
                                                                P5M1 = 0xff;


                                                                EX1 = 1;                                    //使能INT1中断       
                                                          EA = 1;

                                                                _nop_();
                                                                _nop_();
                                                                _nop_();
                                                                _nop_();
                                                                PCON = PD;            //MCU进入掉电模式
                                                                _nop_();
                                                                _nop_();
                                                                _nop_();
                                                                _nop_();
                                                               
                                                                sleep = 0;                                                                       
                                                }
                          }
    }
}

_奶咖君_ 发表于 2024-6-3 17:50:42

这些东西不看手册的么?
定时器到不用管,,掉电之后就不再计数了,,
AD 掉电之前要关闭,看ADC那章节就行了,
IO的配置 论坛里姚总发过很多篇文章 ,,随便搜一下低功耗 、IO的关键词就能出来

_奶咖君_ 发表于 2024-6-3 17:52:08

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2368&extra=page%3D1

电子DIY小家 发表于 2024-6-4 11:06:45

最简单的办法就是看下手册寄存器的初始值,进入低功耗之前所有的寄存器给他写入上电初始值即可{:lol:}

qljdong 发表于 2024-11-2 10:40:34

_奶咖君_ 发表于 2024-6-3 17:50
这些东西不看手册的么?
定时器到不用管,,掉电之后就不再计数了,,
AD 掉电之前要关闭,看ADC那章节就行 ...

我用stc8H8K64U测试低功耗,用了定时器0,弄了大半天,发现唤醒后定时器0不能正常工作,唤醒后先初始化定时器0,就可以了。不知道是不是这个芯片的bug。

_奶咖君_ 发表于 2024-11-2 10:50:30

qljdong 发表于 2024-11-2 10:40
我用stc8H8K64U测试低功耗,用了定时器0,弄了大半天,发现唤醒后定时器0不能正常工作,唤醒后先初始化定 ...

我是 进睡眠之前关闭timer 唤醒之后再开启,,一直是这么个操作,,目前没有什么问题,,后来用上8H的RTC之后 也就不用拿定时器做时基了。

qljdong 发表于 2024-11-2 10:56:47

_奶咖君_ 发表于 2024-11-2 10:50
我是 进睡眠之前关闭timer 唤醒之后再开启,,一直是这么个操作,,目前没有什么问题,,后来用上8H的RTC ...

我目前这是这么操作的,休眠前先关闭,唤醒后打开。

qljdong 发表于 2024-11-2 20:21:50

qljdong 发表于 2024-11-2 10:40
我用stc8H8K64U测试低功耗,用了定时器0,弄了大半天,发现唤醒后定时器0不能正常工作,唤醒后先初始化定 ...

我上午回复的这个定时器0不能正常工作的地方,是我弄错了,程序有个地方关闭了定时器0。
页: [1]
查看完整版本: STC8H3K64S2低功耗时,怎么样关闭T0定时器、AD和IO呀?