历史上的今天
返回首页

历史上的今天

今天是:2025年03月26日(星期三)

正在发生

2020年03月26日 | MSP430教程17:MSP430单片机开发总结

2020-03-26 来源:eefocus

1.#i nclude<>指要在编辑器设定目录下,#i nclude""指的是在当前工程目录下。
2.要调用另一个文件中的函数,要把这个函数文件放到当前工程目录下,并且在工程中添加此文件。
3.命名中不能有-,比如:byq-ee会认为是错误的,要用下划线。
4.用IAR软件仿真时,可以加入变量,如果是查看I/O信息只需加入PXIN,PXOUT即可。
5.IAR在处理字符时,要注意,是字符处理结尾标志,他和其他编辑软件是不同的。比如我们长用字符处理回
自动在结尾处加,但IAR有些是不加的,这就要十分注意。
6.如果只用到LFX1的低速时钟,9600bit/s传输的话,接收会出现问题,原因是误差太大,可以设置到4800以下。
7.在写FLASH时要注意其工作频率在257K~476k之间,如果不是,则会出现错误。而且FLAGH只能写入0,这样就出现了
必须先擦除在写入的模式。
8.当IO口作为输入时,要根据平时的状态加电阻,平时为高时,加个上拉电阻,平时为低时加个下拉电阻以增加稳定性。
9.在FLASH写时一定要关外部中断。
10.MSP430一般是不要RC复位的,一般只要接个100K左右电阻就可以了,如果要加电容,它的大小要根据以下两个标准选择:
下载程序不会出现下载不了
程序上电会能稳定复位
11.用&表达式作为判断时,不要忘记加括号。
12.不要使用中断嵌套。

同时,为了使用C语言来编写MSP430的高质量代码需要注意。

微处理器一般用于特定环境和特定用途,出于成本、功耗和体积的考虑,一般都要求尽量节省使用资源,并且,由于微处理器硬件一般都不支持有符号数、浮点数的运算,且运算位有限,因此,分配变量时必须仔细。另外要说明的是,速度和存储器的消耗经常是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) 如果堆栈空间有限,尽量减少函数调用的层次和递归调用
11) 如果传送参数过多,可将参数组成一个数组或者结构体,然后用指针传递
12) 某些变量在中断程序和普通级别程序中都会被用到,所以必须加以保护。

将变量声明为volatile类型,编译器优化时就不会移动它,对它的访问不会被延迟。

为保证对volatile的变量不被打断,为此,可以在访问它的部分(即访问它的函数)前面加上__moniter的声明

推荐阅读

史海拾趣

ALTERA(阿尔特拉)公司的发展小趣事

阿尔特拉(Altera Corporation)是一家以可编程逻辑器件(FPGA)和相关技术为主的半导体公司,成立于1983年,总部位于美国加利福尼亚州的圣塔克拉拉。以下是关于阿尔特拉公司发展的五个相关故事:

  1. 创立与早期发展:阿尔特拉公司由Robert Hartmann和Michael Magranet等人于1983年创立,最初致力于设计和制造电可擦除可编程只读存储器(EEPROM)。1984年,公司推出了业界第一个商用FPGA产品,即EP300系列,标志着阿尔特拉在FPGA领域的开创性突破。随后,公司不断扩大产品线,加大研发投入,逐步成为FPGA领域的领军企业之一。

  2. FPGA技术创新:阿尔特拉公司在FPGA技术方面持续进行创新。1992年,公司推出了基于静态随机存储器(SRAM)的FPGA器件,使得FPGA在速度和灵活性方面有了显著提升。此后,阿尔特拉不断推出新的器件系列和工具软件,以满足客户对于性能和可编程性的不断提升的需求。

  3. 与竞争对手的竞争:在FPGA市场,阿尔特拉与Xilinx是两大主要竞争对手。两家公司之间展开了激烈的竞争,包括技术研发、产品性能、市场份额等方面。为了在市场上取得优势,阿尔特拉不断加大研发投入,推出了一系列领先的产品和解决方案,并通过全球销售网络拓展市场。

  4. 收购与合并:阿尔特拉公司在发展过程中进行了多次收购与合并,以扩大市场份额和提升技术实力。2015年,英特尔公司以约160亿美元的价格收购了阿尔特拉,将其并入英特尔旗下成为其子公司。这一收购使得英特尔得以整合阿尔特拉的FPGA技术和产品,进一步巩固了其在半导体行业的地位。

  5. 公司发展与创新:作为英特尔的子公司,阿尔特拉继续致力于技术创新和业务拓展。公司不仅持续改进现有产品的性能和功能,还积极投入到新兴领域的研发与应用,如数据中心、人工智能、物联网等。阿尔特拉通过不断推出创新产品和解决方案,保持了在半导体行业的领先地位。

以上是关于阿尔特拉公司发展的五个相关故事,这些故事展示了阿尔特拉从创立初期到被英特尔收购的发展历程,以及其在FPGA技术领域的技术创新、市场竞争和业务拓展等方面的重要进展。

E-tec Interconnect Ltd公司的发展小趣事

为了满足全球客户的需求,E-tec开始在全球范围内进行布局。他们在亚洲、欧洲和北美等地设立了生产基地和研发中心,实现了全球范围内的生产和销售。同时,E-tec还注重供应链的整合和优化,与多家原材料供应商建立了长期稳定的合作关系,确保原材料的稳定供应和成本控制。

Delock公司的发展小趣事

为了保持技术的领先地位,Delock公司非常重视与高校、研究机构的研发合作。公司先后与多所知名大学和研究机构建立了紧密的合作关系,共同开展电子连接技术的研发和创新。这些合作不仅为Delock公司带来了源源不断的技术创新成果,也为公司培养了一批高素质的研发人才。通过与高校、研究机构的紧密合作,Delock公司在电子连接技术领域始终保持领先地位。

Dynachip Corp公司的发展小趣事

Dynachip Corp公司成立于21世纪初,最初是由几位在半导体领域有深厚背景的科学家和工程师共同创立的。他们在大学实验室里共同研发出了一种新型的芯片技术,这种技术具有更高的集成度和更低的能耗。凭借这一创新技术,Dynachip Corp公司正式成立,并开始了从实验室到市场的转化过程。他们积极与投资者接洽,筹集资金,并建立了生产线,将这一技术转化为实际产品。

Circuit Assembly公司的发展小趣事

随着公司的发展,Dynachip Corp不断投入研发,取得了多项技术突破。他们不仅优化了原有的芯片技术,还成功开发出了一系列针对不同应用场景的芯片产品,如高性能计算芯片、物联网芯片等。这些多样化的产品满足了市场的不同需求,使Dynachip Corp在行业中逐渐崭露头角。

Blaze Display Technology Co Ltd公司的发展小趣事

自1982年起,Blaze Display Technology Co., Ltd.(以下简称“Blaze公司”)以其前瞻性的视野和坚定的决心,踏入了LCD显示屏领域。创立初期,公司面临着资金短缺、技术瓶颈以及市场竞争的诸多挑战。然而,凭借创始团队对技术的深刻理解和对市场的敏锐洞察,Blaze公司逐步攻克难关,研发出了一系列具有竞争力的LCD显示屏产品。

问答坊 | AI 解惑

应用技巧/IEEE-1394技术特点及发展前景

如名所示,IEEE-1394开放式主控制器接口(OHCI)是向所有准备支持IEEE-1394技术的厂商提供的开放式标准。OHCI由物理层,链路层,交易层,和串行总线管理4个部分组成。具体功能如下:       - 物理层(Physical Layer)   ...…

查看全部问答>

IC设计?

面向客户的IC设计,已经和将来都会成为IC行业的主角。 对于半导体专业的小生,在IC设计中如何才能分得一杯羹? 请教IC资深人士…

查看全部问答>

收集的分立器件知识材料

本人收集的各种分立器件的基础知识,供大家参考!!…

查看全部问答>

6.2--DIY进展汇报--PCB画好了

两天时间,PCB就把线给布好了,而且很不错,感谢网友DS,现在就是认真核对电路,防止出错! 请大家帮忙仔细检查该板子的原理图,昨天我就检查出来两个很明显的错误。 学习的朋友也加油弄懂电路的原理,有问题大家多多讨论。 原理图链接:https://bbs. ...…

查看全部问答>

PCI32 IP CORE调试

在Xilinx PCI IPcore生成的user design里会在translate的时候出错, 错误内容:ucf中找不到相关的IP核的实例。 修改:synthesis-Properties-advanced-keep hierarchy-soft/yes 即可通过Implement。…

查看全部问答>

WinCE打开工程失败

{FB373486-0E6E-4BB6-8BF2-1F92EACA1468}…

查看全部问答>

【求助】ARM控制SED1330LCD320*240出现这种现象是什么原因?

正常现象应该是:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■填满一行 实际的现象是:  ■  ■■■■■■■■■    ■■■■■■■■■■■■■■  ■■■■随机的消失几个出现到 ...…

查看全部问答>

大家谁对现在(凯思昊鹏)比较熟悉

大家帮帮忙顶顶哈,明天去那里面试。…

查看全部问答>

请大家给点建议

我之前一直从事window上应用程序的开发,现在打算往底层发展一点,学习一下driver的开发,因为现在一直在做windows的东西,所以想从windows的driver开始学起,请问大家 1 学习windows的驱动开发前景(钱途^^)如何? 2 我想开始先看Programming t ...…

查看全部问答>