[讨论] MSP430进入低功耗模式LPM0,使用外部中断唤醒,唤醒后在哪里

火火山   2016-9-8 09:57 楼主
MSP430进入低功耗模式LPM0,使用外部中断唤醒后,我一直单步调试,唤醒后一直在
  1. #pragma vector = PORT4_VECTOR;
  2. __interrupt void PORT4_ISR(void)
  3. {

  4.         __bic_SR_register_on_exit(LPM0_bits);

  5.         ClrAllRam();

  6.         P4IFG = 0;
  7. }
这个中断程序里面,出不去while(1)的大循环,求解求指导

回复评论 (4)

ClrAllRam 没做什么低功耗设置相关的吧,如果把__bic_SR_register_on_exit(LPM0_bits);放到最后执行试试呢?
点赞  2016-9-8 10:03
引用: lcofjp 发表于 2016-9-8 10:03
ClrAllRam 没做什么低功耗设置相关的吧,如果把__bic_SR_register_on_exit(LPM0_bits);放到最后执行试试呢 ...

__bic_SR_register_on_exit(LPM0_bits)  我把中断函数里面就放了这么一句,单步调试还是只在这里跳来跳去。

想请问一下, 跳出低功耗之后,之前的初始化是都在呢?还是会全部复位的?需要重新再初始化一次吗?

因为我这个是P4.5口置了上拉电阻,按键一按就下降沿触发中断,然后P4.5口就一直是低电平了,我所有置了上拉电阻的IO口,都变成了低电平
点赞  2016-9-8 11:54
引用: 火火山 发表于 2016-9-8 11:54
__bic_SR_register_on_exit(LPM0_bits)  我把中断函数里面就放了这么一句,单步调试还是只在这里跳来跳去 ...

LPM0模式只是把CPU停掉了,时钟和其他外设都保持原样不变,因此,你说的现象很是怪异,要彻底排查。
点赞  2016-9-8 12:33
引用: lcofjp 发表于 2016-9-8 12:33
LPM0模式只是把CPU停掉了,时钟和其他外设都保持原样不变,因此,你说的现象很是怪异,要彻底排查。

明白,谢谢版主!

那就苦逼了
点赞  2016-9-8 13:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复