您的位置 首页 被动

MSP430开发注意事项

以下是在使用MSP430中的一些总结:1系统时钟问题:系统默认使用DCO,使用外部高速晶振XT2时必须自己开启XT2,并延时50us等待XT2起振,然后

以下是在运用MSP430中的一些总结:

1.体系时钟问题:

体系默许运用DCO,运用外部高速晶振XT2时有必要自己敞开XT2,并延时50us等候XT2起振,然后手艺铲除IFG1中的OFIFG位

!!!!必定要注意操作次序:翻开XT2->等候XT2安稳->切换体系时钟为XT2

若后边两步操作反了,在一般情况下不会出现问题,可是在电压不稳MCU频频复位的情况下,十分简单形成MCU死掉,只能掉电后从头上电才干牢靠复位。

2.前期版别的IAR开发环境

有必要在Project->Option->C-Spy中挑选对应器材的DDF文件,不然调试时无SFR窗口。

3.在写Flash期间,必定要封闭中止,此刻CPU无法履行程序

4.调试的时分,不要选中”Release JTAG on Go”

5.在调试时,需求封闭看门狗,不然在翻开看门狗的情况下,每逢履行到断点,程序将会跳转到进口点从头履行。或许,暂停运转或中止到断点处时,当需求持续运转时,程序不再履行,而是需求运用“同步JTAG”才干持续运转(从头运转?)

6. IAR EWB标识符是区别大小写的

7. 结构变量内部存在对齐要求,一般依照2个字节的方位对齐,在”C/EC++ Compiler Reference Guide”的P93又如下比如:

struct {

short s;

char c;

long l;

char c2;

} s;

sizeof(s) 为10,而不是8

能够运用#pragma pack来改动这种对齐方法,可是会导致,这个结构只能按字节方法存取

8. MSP430 IAR C/EC++ Compiler支撑两个运转库

1. IAR CLIB : 首要用于8或16为处理器,不完全兼容ISO/ANSI C,也不完全支撑IEEE754浮点数,不支撑Embedded C++.

2. IAR CLIB : 支撑ISO/ANSI C和Embedded C++.

9. cstartup的定制

(1). 在__low_level_init()中增加代码。该函数能够用来初始化I/O寄存器,并决议数据段是否在cstartup被初始化。文件430srcliblowinit.c给出了结构,copy到项目目录中运用,文件中有必定的运用说明。

(2) 若__low_level_init()中增加代码不能满足要求,则把430srclibcstartup.s43拷贝到自己的作业目录,修正所需代码;然后在将该文件增加到项目,在项目选型的XLINK的include页下挑选Ignore CSTARTUP in library即可。

10. 运用#include “io430x14x.h”和#include “in430.h”来代替#include

能够运用界说的位变量

能够运用以下方法界说位变量,可是编译器终究仍是转换为字节操作:

struct

{

unsigned char WDTIE : 1;

unsigned char OFIE : 1;

unsigned char : 2;

unsigned char NMIIE : 1;

unsigned char ACCVIE : 1;

unsigned char URXIE0 : 1;

unsigned char UTXIE0 : 1;

} IE1_bit;

不引荐运用bitfields,功率很低

11. 数组的索引值用int型功率最高,char型也好略低

数组类型:char型数组功率最高,

其他类型的数组在索引时,都采用了乘法

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/258429.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部