新闻banner
当前位置: 首 页 >> 新闻资讯>>技术资讯
11

用哪些开发工具编写超低功耗MCU单片机程序?

MCU的程序的编写与PC下的程序的编写存在很大的差异,虽然现在根据C的MCU开发工具越来越流行,但关于一个高效的程序代码和喜欢运用汇编的规划者来讲,汇编言语仍然是最简练、最有用的编程言语。

关于MCU的程序编写,其底子的结构能够说是大体一致的,一般分为初始化部分(这是超低功耗MCU程序规划与PC最大的不同),主程序循环体和间断处理程序三大部分,其分别阐明如下:

1、初始化:关于全部的MCU程序的规划来讲,初始化是最底子也是最重要的一步,一般包含如下内容:

屏蔽全部间断并初始化堆栈指针:初始化部分一般不希望有任何间断产生。

铲除系统的RAM区域和闪现Memory:虽然有时或许没有完全的必要,但从可靠性及一致性的角度动身,特别是关于防止意外的差错,仍是主张养成良好的编程习气。

IO口的初始化:根据项目的运用的要求,设定相关IO口的输入输出方法,关于输进口,需求设定其上拉或下拉电阻;关于输出口,则有必要设定其初始的电平输出,以防呈现不必要的差错。

间断的设置:关于全部项目需求用到的间断源,应该给予开启并设定间断的触发条件,而关于不运用的多余的间断,则有必要给予关闭。

其他功能模块的初始化:关于全部需求用到的MCU的外围功能模块,有必要按项目的运用的要求进行相应的设置,如UART的通讯,需求设定Baud Rate,数据长度,校验方法和Stop Bit的长度等,而关于Programmer Timer,则有必要设置其时钟源,分频数及Reload Data等。

参数的初始化:完成了低功耗MCU的硬件和资源的初始化后,接下来就是对程序中运用到的一些变量和数据的初始化设置,这一部分的初始化需求根据详细的项目及程序的整体安排来规划。关于一些用EEPROM来保存项目预制数的运用来讲,主张在初始化时将相关的数据拷贝到MCU的RAM,以进步程序对数据的拜访速度,一同降低系统的功耗(原则上,拜访外部EEPROM都会增加电源的功耗)。

2、主程序循环体:大多数MCU是归于长时刻不间断工作的,因此其主程序体底子上都是以循环的方法来规划,关于存在多种作业模式的运用来讲,则或许存在多个循环体,相互之间通过状况标志来进行转化。关于主程序体,一般状况下首要安排如下的模块:

核算程序:核算程序一般比较耗时,因此坚决对立放在任何间断中处理,特别是乘除法运算。

实时性要求不高或没有实时性要求的处理程序;

超低功耗mcu

闪现传输程序:首要针对存在外部LED、LCD Driver的运用。

3、间断处理程序:间断程序首要用于处理实时性要求较高的任务和事情,如,外部突发性信号的检测,按键的检测和处理,守时计数,LED闪现扫描等。

一般状况下,间断程序应尽或许保证代码的简练和短小,低功耗芯片关于不需求实时去处理的功能,能够在间断中设置触发的标志,然后由主程序来实行详细的事务――这一点非常重要,特别是关于低功耗、低速的MCU来讲,有必要保证全部间断的及时呼应。

4、关于不同任务体的安排,不同的MCU其处理的方法也有所不同:

例如,关于低速、低功耗的MCU(Fosc=32768Hz)运用,考虑到此类项目均为手持式设备和选用一般的LCD闪现,对按键的反响和闪现的反响要求实时性较高,因此一般选用守时刻断的方法来处理按键的动作和数据的闪现;而关于高速的MCU,如Fosc》1MHz的运用,因为此时MCU有满足的时刻来实行主程序循环体,因此能够只在相应的间断中设置各种触发标志,并将全部的任务放在主程序体中来实行。

5、在MCU的程序规划中,还需求特别注意的一点就是:

要防止在间断和主程序体中一同拜访或设置同一个变量或数据的状况。有用的预防方法是,将此类数据的处理安排在一个模块中,通过判别触发标志来决定是否实行该数据的相关操作;而在其他的程序体中(首要是间断),对需求进行该数据的处理的当地只设置触发的标志。――这能够保证数据的实行是可预知和仅有的。


底部二维码1
手机扫一扫
关注我们微信公众号