oyufei 发表于 2024-6-3 14:43:30

请教大家,我想采用定时器0中断唤醒掉电模式,但是进入掉电后,定时器好像就不工作了。

#include "stc8g.h"
#include "intrins.h"

sbit LRD_R = P3^2;

unsigned int cnt=0;

void T0_Init(void)
{
        AUXR |= 0x80;                        //定时器时钟1T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0x20;                                //设置定时初始值
        TH0 = 0xD1;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //打开定时器T0中断
        EA = 1;                                        //打开总中断
}

void TM0_Isr(void) interrupt 1
{
        cnt++;
        if(cnt ==1000)
        {
                LRD_R = !LRD_R ;
                cnt = 0;
        }
}

void main()
{
        P0M0 = 0x00;   //设置P0.0~P0.7为双向口模式
        P0M1 = 0x00;
        P1M0 = 0x00;   //设置P1.0~P1.7为双向口模式
        P1M1 = 0x00;
        P2M0 = 0x00;   //设置P2.0~P2.7为双向口模式
        P2M1 = 0x00;
        P3M0 = 0x00;   //设置P3.0~P3.7为双向口模式
        P3M1 = 0x00;
        P4M0 = 0x00;   //设置P4.0~P4.7为双向口模式
        P4M1 = 0x00;
        P5M0 = 0x00;   // 将P5口配置为双向口模式
        P5M1 = 0x00;
        T0_Init();
       
       
        while(1)
        {
          _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
                PCON = 0x02;
                _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();

               
        }
}

乘风飞扬 发表于 2024-6-3 14:59:51

定时器0进入掉电模式后停止工作,是唤醒不了掉电模式的。
掉电唤醒定时器,或者RTC可以周期性唤醒MCU掉电模式。

小飞侠 发表于 2024-6-5 08:21:44

进入掉电模式,系统时钟都停止了,定时器自然也停止了,所以是不能唤醒的

vb2002 发表于 2024-10-9 21:23:09

定时器唤醒要引脚
专用的掉电唤醒定时器才可以唤醒

神农鼎 发表于 2024-10-10 11:43:42

要讲具体型号,都在发展,现在有RTC 唤醒了





rip 发表于 2025-2-19 19:26:27

乘风飞扬 发表于 2024-6-3 14:59
定时器0进入掉电模式后停止工作,是唤醒不了掉电模式的。
掉电唤醒定时器,或者RTC可以周期性唤醒MCU掉电模 ...

请问大佬,唤醒后定时器需要再开启吗?

乘风飞扬 发表于 2025-2-20 09:32:07

rip 发表于 2025-2-19 19:26
请问大佬,唤醒后定时器需要再开启吗?

进入低功耗模式不会改变原先寄存器的设置,所以唤醒后定时器会继续工作,不用重新设置。

Ayb_ice 发表于 2025-2-20 10:22:07

普通定时器唤醒不了掉电模式
页: [1]
查看完整版本: 请教大家,我想采用定时器0中断唤醒掉电模式,但是进入掉电后,定时器好像就不工作了。