MSP430单片机进入低功耗LMP3,中断唤醒后,中断服务程序运行是在进入低功耗之前设置的MCLK作为时钟信号吗。刚进入中断执行 LPM3_EXIT;与中断服务程序末尾执行 LPM3_EXIT;有什么区别?
Lina Lian:
deliang zhang,
中断从LPM3唤醒CPU后,CPU就active了,即MCLK就作为系统主频时钟跑起来了,而在LPM3时,除了ACLK,其他的系统时钟(MCLK和SMCLk)都是关闭的。
我认为 “刚进入中断执行 LPM3_EXIT;与中断服务程序末尾执行 LPM3_EXIT” 是没有区别的,均是表明CPU从LPM3退出,即在从中断返回时,恢复现场时,不再进入LPM3了。但是为了方便理解和维护程序,都是将其写在中断服务程序末尾。你可以做实验试试。
Shi JianHua:
回复 Bruce Wei:
关于低功耗,这些如果确实影响到功能,可以考虑,但是如果不影响,就不要管他。程序完成一个循环,就进入低功耗,当发生中断时就直接唤醒了,就从低功耗的地方直接开始运行了,一般的进入低功耗都是在循环的最后,也就唤醒后就直接从大循环开始了。时钟基本不需要干预的。如果真的要保存处理数据的话,在终端里面处理。你说的时钟位置我觉的不大。一般低功耗直接用32k晶振,不来回切换。频率越低,功耗越低。正常时最好也是低频工作。
Peter_Zheng:
从LPMx回到Active状态的时钟都是MCLK的时钟。在什么位置执行EXIT都是指针出栈的,都一样。
deliang zhang:
回复 Lina Lian:
数据手册上写到:中断受理中清除状态寄存器(SR)(是不是意味着SR中全部为0?)但是又写到进入中断服务程序CPUOFF、SCG1和OSCOFF位自动复位,这里没有提及SCG0是否复位。我想知道SCG0怎么变化,如果SCG0不复位,那就是关闭了FLL+loop control(如果主时钟设置为DCO的时候,锁频环就不被使能了)