打印

分享头文件定义的退出低功耗[新手们值得注意]

[复制链接]
1884|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lzlong|  楼主 | 2011-12-6 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信很多人在应用430的时候都喜欢吧进入低功耗和退出低功耗当做一个“标志位”来使用,譬如:
复制代码
  • void main(void)  
  • {  
  • …………  
  • …………  
  • …………  
  • while(1)  
  •    {  
  •      LPMx;  
  •     …………  
  •     …………  
  •    }  
  • }  
  • //*********************************************************************  
  • #pragma vector=xxxxxxx  
  • __interrupt void xx(void)  
  • {  
  • …………  
  • …………  
  • …………  
  • LPMx_EXIT;  
  • }  




在进入低功耗和退出低功耗,好些人喜欢_BIS_SR(CPUOFF)或_BIS_SR(LPM0_bits);
这样是可以的。
但是在中断里退出低功耗用_BIC_SR(CPUOFF)或_BIC_SR(LPM0_bits);是不可以的。因为这个就相当于在中断里直接改SR,中断函数执行完毕后,SR出栈又进入了低功耗。
应该用LPMx_EXIT;或者_BIC_SR_IRQ(LPM0_bits);这个语句相当于汇编的bic.b  #CPUOFF,(0)SP

之前用汇编很注意这个问题,可是用C的时候却疏忽了_BIC_SR(LPM0_bits);和LPMx_EXIT;或者_BIC_SR_IRQ(LPM0_bits);的区别。

相关帖子

沙发
TI_MCU| | 2011-12-6 17:24 | 只看该作者
1# lzlong


非常实用啊~~  多谢楼主分享

使用特权

评论回复
板凳
TA| | 2011-12-8 13:14 | 只看该作者
好好学习

使用特权

评论回复
地板
xlhtracy| | 2011-12-8 15:32 | 只看该作者
这个确实很基础 但是很实用哈

使用特权

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

本版积分规则

0

主题

141

帖子

1

粉丝