大牛介绍微控制器,微控制器标准软件设计流程介绍
扫描二维码
随时随地手机看文章
微控制器在诸多行业中都所有使用,尤其是工科专业。对于微控制器,小编在往期文章中有所介绍,如微控制器工作原理、微控制器特点等。为增进大家对微控制器的认识,本文将对MSP430微控制器标准软件设计流程加以介绍。如果你对本文内容具有兴趣,不妨继续往下阅读哦。
MSP430微控制器软件设计的标准流程均可参考下图。该标准的软件流程可将系统整体功耗降至最低。
上图所描述的软件流程代码是基于中断程序的,平时MCU处于睡眠状态,直到有中断产生时MCU被唤醒,最大程度降低系统功耗,优化电源效率。
理解上图所示的中断服务子程序(1SRs)流程,能更好的掌握MSP430微控制器处理低功耗的模式。MSP430微控制器的低功耗模式由状态寄存器SR的控制位控制,在执行中断服务子程序之前,状态寄存器SR的低功耗模式控制位可以被优先压栈。当中断服务子程序返回时,主程序调用中断之前的低功耗模式控制位,从而进入中断之前的低功耗模式状态。当然,如果我们在ISR中断服务子程序返回前修改了保存在SR中的低功耗模式控制位,那么ISR中断子程序执行完之后,主程序流程可以转到另一个不同的低功耗工作模式。
中断唤醒机制作为MSP430微控制器内部低功耗模式的一部分,允许系统快速唤醒,响应中断事件。例如,当一中断事件发生之前MSP430微控制器处于低功耗LPM0模式,MCU在执行中断服务子程序之前首先向堆栈保存SR中的低功耗模式控制位值然后清除SR值,清除SR值使MCU从LPMO模式进入到执行中断活动模式状态。在ISR中断服务子程序中,软件设计者可以写一条语句清除SR中的低功耗模式控制位,当中断程序完成后,MCU从堆栈中重新装载调用各自寄存器的状态值。如果没有修改SR的低功耗模式控制位,退出中断后系统仍然返回进入LPM0低功耗模式,若此时已修改SR控制位,当从ISR中断程序退出后,系统会工作于活动模式时,并且按进入中断之前的PC指针所指的地址继续执行程序。
由于可以在fSR中断服务子程序中改变低功耗模式,所以设计者可以选择在ISR程序中执行全部任务,也可以选择在ISR唤醒MCU后在主程序中处理任务。
在ISR程序中处理时确保能立即响应中断事件,中断事件发生时即能立刻处理中断任务,但是,在处理一个中断事件时,其它中断将不能被载入,直到该中断任务完成,而这样长时间的中断将会降低系统的响应灵敏,所以设计者须根据不同系统要求选择最佳处理方式。
上图所示的流程图中主程序需处理两个中断事件,这两个中断事件所要处理的任务是在主循环中处理的。ISRs执行两个不同的事件任务。第一个中断,ISRs改变了保存在堆栈中SR的值,可以使系统退出中断后进入活动工作模式,中断事件是在主程序中被执行,中断事件可以是一任意应用事件,例如定时器、按键处理、AD转换等。第二个中断,在ISR中断服务子程序设置一标志位,在主程序检测该标志位来判断是否执行相应的任务。如果需处理的中断事件能在较短的时间内迅速完成,这样就能够在中断服务子程序中直接执行,无需进入主程序处理,此时ISR中断服务子程序没必要设置标志位或改变SR低功耗控制位退出睡眠模式,退出ISR中断服务子程序后MCU仍然返回到睡眠模式。该流程可以根据系统应用的复杂性来定,例如,只有一个中断事一件可唤醒主程序时,则无需设置系统标志位,此时,通过中断唤醒主程序,然后主程序进行相应的任务操作,最后MCU重新进入睡眠模式。
上图中所提到的睡眠模式LPMn是系统所要用到的睡眠低功耗模式,每种应用所涉及的模式可能会有所不同,实际的睡眠模式由整个系统所用到的模块(如定时器、AD、串口等)决定,取决于系统模块在相应的睡眠模式下可否被中断唤醒。例如由MCU的定时器负责唤醒CPU,且该定时器时钟为ACLK时,则ACLK必须保持活动模式,则MCU可以工作在LPM3模式;但是如果定时器时钟为DCO时,则MCU必须工作在LPMO。
以上便是此次小编带来的“微控制器”相关内容,通过本文,希望大家对MSP430微控制器标准软件设计流程具备一定的认知。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!