世纪电源网社区logo
社区
Datasheet
标题
返回顶部
讨论

关于MSP430状态寄存器SR的问题

[复制链接]
查看: 471 |回复: 3
1
sufeila
  • 积分:565
  • |
  • 主题:11
  • |
  • 帖子:53
积分:565
LV6
高级工程师
  • 2023-3-30 14:09:05
通过命令_BIS_SR(LPM0_bits)使MSP430进入低功耗模式等待中断,在中断发生后需不需要将CUPOFF位复位?比如说用命令 _BIC_SR(LPM0_bits) 还是中断发生后自动复位?
zjxiao886
  • 积分:772
  • |
  • 主题:4
  • |
  • 帖子:85
积分:772
LV6
高级工程师
  • 2023-4-4 13:13:34
  • 倒数3
 
如果不需要改变中断后的mcu运行状态,那就不需要在中断函数中修改SR;
当mcu响应中断时,SR寄存器会入栈,当中断结束时,SR再出栈,这时mcu就返回之前的运行状态了;
当需要改变中断后的运行状态,可以在中断函数中改变栈中的SR值,在函数最后加上:
__bic_SR_register_on_exit(LPMx_bits);
__bic_SR_register(LPMx_bits);
可以在中断后返回任意状态。
sufeila
  • 积分:565
  • |
  • 主题:11
  • |
  • 帖子:53
积分:565
LV6
高级工程师
  • 2023-4-6 13:30:06
  • 倒数2
 
请问中断后 PC怎么变化?比如这样一段程序:
void Setup TimerA()
{
………………
………………

  for(;;)
  {
    _BIS_SR(LPM0_bits);  //进入低能耗模式
    _NOP;
  }
………………
………………
}

在进入LPM0后,有中断发生,执行中断服务程序,执行完后,可以接着执行下面的语句吗?
也就是说 需不需要加那个
_NOP语句?
z443233785
  • 积分:5584
  • |
  • 主题:118
  • |
  • 帖子:1063
积分:5584
LV8
副总工程师
最新回复
  • 2023-4-9 19:23:54
  • 倒数1
 
不需要吧,用_BIS_SR(LPM0_bits + GIE);要打开中断使能
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号