打印
[MINI51]

掉电用看门狗循环唤醒功耗大比直接掉电大N倍?

[复制链接]
1720|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feng8601|  楼主 | 2013-6-13 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天想用看门狗循环唤醒来扫描按键,不知为什么,看门狗一唤醒功耗从8uA直接去了900uA了,
关了扫键,直接醒了再掉电,还是大功耗,我用m0都不会这样,有人知道为何吗?
    Un_Lock_Reg();       
    PWRCON = PWRCON & (~XTLCLK_EN) | OSC22M_EN;           //使能外晶振   
    while((CLKSTATUS & OSC22M_STB) == 0);                            //等12M时钟稳定   
    CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_22M;          //选12M为系统时钟   
        Lock_Reg();

        io_init();
  Power_OFF();
  WDT_Init();
   while(1)
   {
    io_off();       
    __wfi();
    WDT();
  //Keycheck();
   }

相关帖子

沙发
缥缈九哥| | 2013-6-13 22:39 | 只看该作者
看门狗你用什么时钟?你不是用M0吗?

使用特权

评论回复
板凳
feng8601|  楼主 | 2013-6-14 09:57 | 只看该作者
缥缈九哥 发表于 2013-6-13 22:39
看门狗你用什么时钟?你不是用M0吗?

看门狗用10K呀,都是在管理例程里拿来用的,现在用mini,之前用M0是可以的,功耗才20uA就可以扫键了
/****************************************************************************************
  Description:                       Select WDT Timeout interval                                    
****************************************************************************************/
void WDT_SetInterval(uint32_t interval)
{
    WTCR = (WTCR&(~WTIS)) | (interval<<8);             //Set WDT timeout interval   
}

/****************************************************************************************
描述 :  WDT初始化,时钟源选10KHz,使能复位功能
****************************************************************************************/
void WDT_Init(void)
{
     Un_Lock_Reg();       
   // APBCLK   = 0x000005;                             //Enable WDT clock  
        APBCLK   |= WDT_CLKEN;  
    CLKSEL1   = (CLKSEL1 & (~WDT_CLK)) | WDT_10K;      //Set WDT clock source as 10k   
    WTCR     &= ~WTRE;                                       //Disable Watchdog Timer Reset function   
    WDT_SetInterval(6);                                //Set WDT timeout Interval        as 101.44ms   
    WTCR     |= WTIE;                                  //Enable WDT timeout interrupt          
    NVIC_ISER = WDT_INT;
    WTCR     |= WTWKE;                                       //Enable WDT wakeup function   
    WTCR     |= WTE;                                         //Enable WDT    */
    Lock_Reg();       


}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝