低功耗模式的困惑

楼主
低功耗模式的困惑
[P]最近做了个板子,停电时用电池供电,顺便进入低功耗模式,但是怎么调也不行,程序如下,望各位大侠能不吝指点一二,谢谢了![/P][P]  {
    //处理P1IN.7中断
    P1IFG &= ~BIT7; //清除中断标志
    if(sign_P17==0)
    {
      sign_P17=1;
      P1IES &=~BIT7 ;           //设P17上升沿中断
      LPM2;
    }
    else
    {
      sign_P17=0;
      P1IES |=BIT7 ;            //设P17下降沿触发中断
      LPM2_EXIT; //退出中断后退出低功耗模式。[/P][P]    }
程序用P1.7中断检测电源的有无,停电时用下降沿进入中断,将系统设置为低功耗模式。上电时,上升沿中断,退出低功耗。程序运行好像能进入低功耗,退不出来。[/P]
1楼
[P]我看你的思路与程序结构是有问题的~[/P][P]最基本你这段是IO口的中断程序,居然在IO中断后,在这段程序中居然再次进入LPM2模式。本来就是在执行中断程序的,然而在这里头再次进入低功耗,那么进入低功耗后,都不能完成中断程序的完成。[/P][P]你自己想想看...是不是有问题[EM09][/P]
2楼
[P]请问 DC 低功耗状态也影响中断程序么?[/P]
3楼
[P][QUOTE][B]下面引用由[U]WQY900618[/U]发表的内容:[/B]

请问 DC 低功耗状态也影响中断程序么?[/QUOTE] [/P][P]低功耗的“状态”会影响“中断程序”?是否影响到,那要看你是如何编写中断程序了。[/P][P]像楼主这样编写就出问题了,上面的贴子我已说明了。也不知为啥楼主去哪了...[EM05][/P]
4楼
[P]不好意思DC,这两天没时间上网,我也意识到这种方法有问题了,我修改过了,用P17检测电压,当检测到低电压(这个口接电源,也就是停电)时进入低功耗,并且我把所有口(除P17,用来中断退出低功耗)都设置为输出,并且输出为0。但是现在感觉电池电压还是下降的很快。不知道是什么原因……[/P][P]我看了一下电流,用交流电的时候才4.7毫安,我断电之后就7.7毫安了[/P]
5楼
[P][EM16]要搞清这7.7mA电流是MCU自身的消耗掉的还是外围电路的。[/P][P]在低功耗时,要注意的时钟源是否真的被关闭了。这关系到你所用的型号,旧型号可能会有些bug的。比如149这个,就算你进入了LPM3后。ACLK还在活动的,那么此时你得用人工将晶振器关闭。这样才能达到低功耗的目的,另外,还要注意MCU IO与外面的电路相连状态,这也有可能引起功耗增加的。[/P][P]自己再细心看看吧[EM11][/P]

电脑版 Page created in 0.0664 seconds width 2 queries.