MSP430系列单片机的各个模块都能够独立运转,如定时器、输入/输出端口、A/D转化、看门狗、液晶显示器等都能够在CPU休眠的状况下独立作业。若需求主CPU作业,任何一个模块都能够经过中止唤醒CPU,从而使体系以最低功耗运转。
让CPU作业于突发状况能够充分利用CPU的低功耗功能。一般,运用软件将CPU设定到某一低功耗形式,在需求时运用中止将CPU从休眠状况中唤醒,完结作业后又能够进入相应的休眠状况。如:让CPU作业在LPM3状况,经过中止事情转化到AM活动形式,依据运转需求,又能够从AM状况进入相应的低功耗形式:LPM0/LPM3或LPM4。
体系的这些低功耗特性是靠体系对中止的呼应来完成的。体系呼应中止的进程:(1)硬件主动中止服务。包含PC入栈、SR入栈;中止向量赋给PC;GIE、 CPUOFF、OSCOFF和SCG1铲除;以及IFG标志位铲除(单源中止标志)。(2)履行中止处理子程序。(3)履行RETI指令(中止回来),包含SR出栈;PC出栈。
例如:体系初始化完结后作业于低功耗形式0,中止事情触发到活动形式,中止处理完毕后进入低功耗形式3。
;主程序
……;初始化操作开端
……;
……;初始化完毕
BIS #GIE+CPUOFF, SR ; 主程序中设置低功耗形式0,LPM0
;……;程序在这里中止
;中止子程序
……
……; 中止处理完毕
BIS #GIE+CPUOFF+SCG1+SCG0, 0(SP) ; 设置SR为低功耗形式3,LPM3
RETI; 中止回来
;体系进入低功耗形式3
……
假如主程序期待在中止回来之后持续履行某些操作,能够在中止处理子程序中改动SR的值为AM形式,体系中止退出后依据康复的SR和PC的值,来履行设定的某些操作。
;主程序
……;初始化操作开端
……;
……;初始化完毕
BIS #GIE+CPUOFF, SR ; 主程序中设置低功耗形式0,LPM0
L1 操作1
L2 操作2
……;
;中止子程序
…… ;中止处理开端
……
……; 中止处理完毕
BIS #GIE+CPUOFF, 0(SP) ; 设置SR为活动形式,AM
RETI; 中止回来,体系进入活动形式
……
主程序履行到LPM0处中止履行,L1,L2等句子不履行。之后中止事情保存PC(L1指令地址)和SR(低功耗形式0),中止唤醒CPU,履行中止处理程序;因为在中止处理子程序中将SR设置为活动形式,所以中止回来后CPU处于活动状况,并从PC指向的L1指令处开端持续履行……