==============================================================================================================================
微处理器一般用于特定环境和特定用途,出于成本、功耗和体积的考虑,一般都要求尽量节省使用资源,并且,由于微处理器硬件一般都不支持有符号数、浮点数的运算,且运算位有限,因此,分配变量时必须仔细。另外要说明的是,速度和存储器的消耗经常是2个不可兼顾的目标,在多数情况下,编程者必须根据实际情况作出权衡和取舍。 需要注意的事项如下:
1) 通常在满足运算需求的前提下,尽量选择为变量定义字节少的数据类型。 比如最常用的 int和 char, int是 16 位的, char 是8位的,如果没有必要,不要使用 int,而且使用 char 也最好使用 unsigned char。运行时,可以在变量窗口看到,使用类型为unsigned char 的变量是 16 进制的格式,而使用 int 的是十进制格式,如果 char 没有定义为 unsigned,会出现负号,如果没有必要的话,在 430 中是不需要负数的。
2) 尽量不用过长的数据类型,如 long、long long和 double .
3) MSP430的 C编译器不支持位寻址,所以运算中尽量减少位操作,对于只有“是”和“否”的变量,如果RAM 容量允许,则可分配为 unsigned char类型,可提高运算速度。如果分配为某字节的某个位,可以减少存储器的消耗,但是会降低运算速度 .
4) 避免使用浮点数,尽量使用定点数进行小数运算。如果必须使用浮点数,则尽量用 32 位的 float,而不是 64位的 double .
5) 尽量将变量分配为无符号数据类型
6) 对于指针变量,如果声明后其值不再改变,则声明为 const 类型,这样编译器编译时能更好的优化生成的代码
7) 尽可能的使用局部变量而非全局变量或者静态变量(static) 。这样有利于编译器编译时更好的优化生成的代码
8) 避免对局部变量使用 &取地址符。因为这样会使编译器无法把此变量放在 CPU的寄存器中,而是放在RAM中,从而失去了优化的机会
9) 仅在模块内使用的变量声明为 static,有利于优化代码
10) 如果堆栈空间有限,尽量减少函数调用的层次和递归调用
================================================
关键字:MSP430 C语言编写 注意事项
引用地址:
MSP430的C语言编写注意事项
推荐阅读最新更新时间:2024-03-16 15:33
MSP430程序库<八>DAC12的使用
MSP430 带有的DAC12 模块,可以将运算处理的结果转换为模拟量,以便操作被控制对象的工作过程。DA是在控制操作过程中常用的器件之一;MSP430有些系列中含有DAC12模块,给需要使用DA的方案提供了许多方便。这里实现较为简单的DAC的驱动,方便以后使用。 硬件介绍: MSP430x14x系列不含DAC12模块,所以本文的实现只能用于16系列等含有DAC12模块的单片机中。 MSP430F169 单片机的DAC12 模块有2 个DAC 通道,这两个通道在操作上是完全平等的。并且可以用DAC12GRP控制位将多个DAC12通道组合起来,实现同步更新,硬件还能确保同步更新独立于任何中断或者NMI事件。 这个DAC1
[单片机]
钳形表测电流的方法及注意事项说明
钳形表(钳表),是集电流互感器与电流表于一身的仪表,是数字万用表的一个重要分支;是一种不需断开电路就可直接测电路交流电流的携带式仪表。钳形表实质上是由一只电流互感器、钳形扳手和一只整流式磁电系有反作用力仪表所组成。 使用方法: (1)测量前要机械调零 (2)选择合适的量程,先选大,后选小量程或看铭牌值估算。 (3)当使用最小量程测量,其读数还不明显时,可将被测导线绕几匝,匝数要以钳口中央的匝数为准,则读数=指示值×量程/满偏×匝数 (4)测量完毕,要将转换开关放在最大量程处。 (5)测量时,应使被测导线处在钳口的中央,并使钳口闭合紧密,以减少误差。 注意事项: (1)使用高压钳形表时应注意钳形电流表的电压等级,严禁用低压钳
[测试测量]
如何设计一个以MSP430F2274单片机为控制核心的智能小车?
智能小车涉及到高级计算机控制、电子机械、自动化等诸多学科,随着科技的不断进步,智能电子产品发展步骤不断加快,各种应用层次的机器人等大量出现,目前应用在智能小车或机器人的微控制器主要是8/16单片机或ARM和数字信号处理器DSP等。本设计采用TI公司生产的功耗低运行速度快且价格便宜的MSP430F2274为核心,避障检测采用测距精准的超声波传感器,该传感器采集小车周围的环境信息并传递给MSP430进行程序判断处理,从而达到控制小车自动避障的目的。 1 系统的总体结构框图 该系统主要由MSP430控制器,超声波避障模块,电机驱动,测速,语音模块,温度模块,小车的机械运动部分采用四轮差速转向式结构,前2个轮是驱动轮,分别由电机控制其
[单片机]
基于MSP430的嵌入式DTMF拨号解码器方案设计
本文介绍了一种基于MSP430的嵌入式DTMF拨号解码器实现方案。DTMF拨号部分使用4根I/O线的电阻网络,配合软件产生DTMF信号。利用MSP430F133内置的ADC,并采用改进的Goertzel算法,实现DTMF信号的实时解码。该方案成本低、性能可靠,已经得到了实际应用。 DTMF信号 DTMF信号是将拨号盘上的0~9、A~D及*/E、#/F共16个字符,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如图1所示。 根据CCITT Q.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号
[单片机]
继电器的电气特性及其使用注意事项
继电器的特性和类型 继电器 属于一种微电控制器件,在电路中起着自动调节安全保护转换电路等作用。 1、电磁式电磁继的工作原理: 电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常
[模拟电子]
以MSP430F149单片机为控制核心的点光源跟踪系统设计
1 系统方案论证 1.1 系统各模块方案的选择与论证 (1)电机驱动模块。采用L298驱动芯片组成驱动电路,可以通过控制中心输出的高低电平对电动机的方向进行控制,并且可以通过PWM波直接控制电动机的速度。电路较为简 ~单,容易实现,驱动能力和抗干扰能力强,性价比高。 (2)LED灯电流调节与光源检测模块。发射端通过直流稳压电源来点亮白光LED,通过调节白光LED两端的电压来调节电流从而调节亮度,接收端采用多个光敏电阻,通过光敏电阻阻值的变化来判断光源的位置。 (3)LED电流检测模块。在LED的下端串联一0.1Ω的电阻,电阻的另一端接地,采用OPA335精密放大器对0.1 Ω电阻的压降进行放大,再通过AD采样处理,从而测量
[单片机]
MSP430实现800Hz蜂鸣器和秒表
只是一个简单的课设题目,觉得自己写的代码还将就! #include msp430.h #include stdint.h #include dr_lcdseg.h //调用段式液晶驱动头文件 int second = 0, secSum = 0, minSum = 0; int count = 0; void GPIO_init(); //按键S7为reset void P40_Onclick() { second = 0; secSum = 0; minSum = 0; } //按键S5为开始 void P42_Onclick() { TA0CTL |= MC_1; } //按键S3
[单片机]
LED在使用过程中需要注意什么
LED 在使用过程中需要注意以下事项: 1、LED引脚成形方法 (1)必需离胶体2毫米才能折弯支架。 (2)支架成形必须用夹具或由专业人员来完成。 (3)支架成形必须在焊接前完成。 (4)支架成形需保证引脚和间距与线路板上一致。 2、LED弯脚及切脚时注意 (1)因设计需要弯脚及切脚,在对LED进行弯脚及切脚时,弯脚及切脚的位置距胶体底面大于3mm。 (2)弯脚应在焊接前进行。 (3)使用LED插灯时, PCB 板孔间距与LED脚间距要相对应。 (4)切脚时由于切脚机振动磨擦产生很高电压的静电,故机器要可靠的接地,做好防静电工作(可吹离子风扇消除静电)。 3、关于L
[电源管理]