一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

TIMSP430微控制器软件编程经验和应用技巧

来源:http://www.elecfans.com/emb/danpianji/20180311645835.html 发布时间:2018-03-14

摘要: 本文主要介绍TIMSP430微控制器软件编程设计中的实践经验和应用技巧。第一部分讲述基于中断的标准程序流程模式,适用于大多数的产品应用编程。

本文主要介绍TIMSP430微控制器软件编程设计中的实践经验和应用技巧。第一部分讲述基于中断的标准程序流程模式,适用于大多数的产品应用编程。

另外一部分讲述MSP430微控制器编程人员在开发产品时需要注意的一些关键问题、重要方法与注意事项,如:程序初始化流程,晶振初始化时的注意事项等,利用这些方法可以极大程度地减少产品的开发周期和提高产品的稳定性。

      MSP430微控制器软件设计的标准流程均可参考图1。该标准的软件流程可将系统整体功耗降至最低。

MSP430微控制器软件设计的标准流程-电子元器件网上商城

图1所描述的软件流程代码是基于中断程序的,平时MCU处于睡眠状态,直到有中断产生时MCU被唤醒,最大程度降低系统功耗,优化电源效率。

理解图1所示的中断服务子程序(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程序中处理时确保能立即响应中断事件,中断事件发生时即能立刻处理中断任务,但是,在处理一个中断事件时,其它中断将不能被载入,直到该中断任务完成,而这样长时间的中断将会降低系统的响应灵敏,所以设计者须根据不同系统要求选择最佳处理方式。

图1所示的流程图中主程序需处理两个中断事件,这两个中断事件所要处理的任务是在主循环中处理的。ISRs执行两个不同的事件任务。第一个中断,ISRs改变了保存在堆栈中SR的值,可以使系统退出中断后进入活动工作模式,中断事件是在主程序中被执行,中断事件可以是一任意应用事件,例如定时器、按键处理、AD转换等。

第二个中断,在ISR中断服务子程序设置一标志位,在主程序检测该标志位来判断是否执行相应的任务。如果需处理的中断事件能在较短的时间内迅速完成,这样就能够在中断服务子程序中直接执行,无需进入主程序处理。

此时ISR中断服务子程序没必要设置标志位或改变SR低功耗控制位退出睡眠模式,退出ISR中断服务子程序后MCU仍然返回到睡眠模式。该流程可以根据系统应用的复杂性来定,例如,只有一个中断事一件可唤醒主程序时,则无需设置系统标志位,此时,通过中断唤醒主程序,然后主程序进行相应的任务操作,最后MCU重新进入睡眠模式。

图1中所提到的睡眠模式LPMn是系统所要用到的睡眠低功耗模式,每种应用所涉及的模式可能会有所不同,实际的睡眠模式由整个系统所用到的模块(如定时器、AD、串口等)决定,取决于系统模块在相应的睡眠模式下可否被中断唤醒。

例如由MCU的定时器负责唤醒CPU,且该定时器时钟为ACLK时,则ACLK必须保持活动模式,则MCU可以工作在LPM3模式;但是如果定时器时钟为DCO时,则MCU必须工作在LPMO。

了解更多相关设计技术信息,请点击华强旗舰电子圈(http://www.hqbuy.com/dzq/dzqsy.html)!

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: