历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2020年03月08日 | msp430内置函数总结 __bic_SR_register(),__delay_cycles(x)

2020-03-08 来源:eefocus

(1)MSP430F5529支持最高工作频率为25MHZ,也就是说你通过锁相环倍频来提高系统运行速度是有一个限制的,最高只能到25MHZ(再高没意思了)。



(2)几个重要的内联函数(内联函数定义在intrinsics.h中,但是这几个函数使用的时不需要事先声明该文件头)

①__bic_SR_register();

将CPU中SR寄存器中的某些位清零。即将括号内的位清零。

例:__bic_SR_register(GIE);//将GIE位清零,即关闭总中断

②__bis_SR_register();

将CPU中SR寄存器中的某些位置1。即将括号内的位置1。

③ __interrupt

放在函数前面,标志中断函数。下面这段程序是看门狗


WDT的中断服务函数。WDT_VECTOR为看门狗的中断向量。举例:

 #pragma vector=WDT_VECTOR

__interrupt void WatchDog(void)

{… }

④ __monitor

放在函数前面,功能是声明当这一函数执行的时候自动关闭中断。应该尽量缩短这样的函数,否则,中断事件无法得到及时的响应。

⑤ __bic_SR_register_on_exit();

 功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位清0.

⑥ __bis_SR_register_on_exit();

功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位置1.

⑦ __no_init

放在全局变量前面,功能是使程序启动时不为变量赋初值

⑧ __disable_interrupt

                     关闭总中断

                     另外一个相同作用的表达为:    _DINT()

⑨ __enable_interrupt

                     开启总中断

                     另外一个相同作用的表达为:    _EINT()

⑩__even_in_range(  ,  );

常被用在多源中断的查询中,如switch( __even_in_range(TAIV,10)

意思是:只有在TAIV的值是在0--10内的偶数时才会执行

switch函数内的语句。其作用是提高switch语句的效率

 

A._NOP()

空操作,等价于__no_operation指令

 

B.__get_SP_register(void)

功能:返回堆栈指针寄存器SP的值。

 

C.__get_SR_register_on_exit(void)

功能:用于一个中断函数或者不可中断函数

(标志为__monitor)返回时,返回状态寄存器SR的值。

 

D.__bcd_add_short(unsigned short,unsigned short);

功能:两个16为BCD格式的数字相加,返回和。

 

E.__bcd_add_long(unsigned long,unsigned long);

功能:两个32位BCD格式的数字相加,返回和。

 

F. __delay_cycles(x);

系统自带的精确延时。x必须是常量或则是常量表达式,如果是变量则编译报错!延时的时间为x乘以MCLK的时钟周期

 

(3)关于MSP430大量寄存器如何处理的问题:

MSP430寄存器太多了,把每一个都记住实在太难。所以,我的建议是,学习的时候,把重要的常用的寄存器记住。

至于其它众多寄存器,大家只需要有一个印象,知道这些寄存器可以控制那些设置。到具体用的时候,再查找技术手册;

 

(4)头文件msp430f5529.h

里面不仅定义了对各个寄存器的声明,还定义了很多很方便的东东。

比如你要进入低功耗模式1:LPM1;

比如你要把定时器A0的时钟选为SMCLK:


最原始的做法是TA0CTL=0x0200,但现在有更清晰的做法TA0CTL=TASSEL_2;//时钟源选择模式2

 

所以说要不断发掘不断积累!

 

(5)中断寄存器的名字

大家都知道中断函数是怎么写的,模式为:

#pragma vector=中断向量地址(名)

__interrupt void 自定义中断函数名(void)

{… }

但是想要写出来,你首先得知道中断向量叫什么名字吧

到目前,我们已经遇到了看门狗中断WDT_VECTOR、引脚P2的外部中断PORT2_VECTOR、定时器A0(CCR1-CCR4和TAIFG)中断TIMER0_A1_VECTOR

还有大量的中断向量,我们目前还不知道名字该怎么办。

打开msp430f5529.h,拉到该文件底部,就展示了定义的各种中断向量名,还有解释。

 

(6)

MSP430的最大特色就是低功耗,这个是体现在各个方面的。在整体层次上,MSP430可以设置整个系统的工作模式以达到适应工作要求且降低功耗的目的。


为了降低功耗,处理器有几个考虑:

一个是降低工作电压(F5529为3.3V很低了吧,而且内部核心电压VCORE更低); 

第二个就是把暂时不用的模块功能关闭掉(F5529各个模块都可以独立运行,如定时器、A/D转换、看门狗等都可以在CPU休眠的状态下独立工作。若需要主CPU工作,任何一个模块都可以通过中断唤醒CPU,从而使系统以最低功耗运行。

);

第三个方法就是降低工作时钟频率。

推荐阅读

史海拾趣

GE Power Electronics Inc公司的发展小趣事
合理设计电路布局和布线,避免信号干扰和串扰。同时,采用适当的保护电路,如过压保护、过流保护等。
Baumer Electric Ag公司的发展小趣事

1966年,Baumer Electric Ag完成了从个体企业向股份公司的转型。同年,公司推出了测量开关和控制开关,这一创新产品为公司的成功发展奠定了坚实基础。股份制改革为公司带来了更多的资金和资源支持,加速了产品研发和市场推广的进程。

DACHANG公司的发展小趣事

DACHANG公司的起点可追溯到一次重要的技术突破。当时,公司创始人带领团队经过数月的艰苦研发,成功开发出了一款具有革命性意义的新型电子元件。这款元件不仅性能卓越,而且成本较低,极大地满足了市场对于高性价比电子产品的需求。凭借这一技术突破,DACHANG公司迅速在市场上获得了认可,为公司后续的发展奠定了坚实的基础。

Advanced Monolythic Ceramics公司的发展小趣事

DACHANG公司深知创新是企业发展的根本动力。因此,公司始终将创新作为自己的核心竞争力,不断推出具有创新性的产品和解决方案。无论是产品设计、技术研发还是市场营销,DACHANG公司都积极引入新的理念和模式,为公司的发展注入了源源不断的活力。

Equator Technologies公司的发展小趣事

Equator Technologies公司成立于XX年代初,当时正值数字视频技术飞速发展的时代。公司凭借其在视频DSP(数字信号处理器)领域的独特见解和技术实力,迅速崭露头角。起初,Equator主要聚焦于提供高性能的视频处理解决方案,用于改善电视和其他显示设备的画质。通过不断的技术创新和产品迭代,Equator逐渐在市场中建立了良好的口碑。

Einfochips公司的发展小趣事

为了满足不断增长的ASIC和嵌入式服务需求,Einfochips公司决定在印度孟买附近的Pune设立一家新的设计中心。该设计中心将为亚洲和北美客户提供服务,主要涉及存储网络、无线通信和消费多媒体等领域。这一举措不仅加强了Einfochips在亚洲和北美市场的地位,还为其未来的发展奠定了坚实基础。

问答坊 | AI 解惑

bootstrap未能加载是什么回事?

我用vs2005C#在windows ce 5.0上做开发.一上来就遇到一个问题.设备与电脑连好后,activesync上也提示完成同步.呈绿色.但是当我用vs2005上的连接设备去连接该设备的时候去提示:\"连接失败,bootstrap未能加载\" 想请问这是怎么回事?…

查看全部问答>

写好嵌入式实时OS核,寻找合作开发产品

自己写了个嵌入式实时OS核,取名LOS,即Learn  Operate System。LOS是应用于工业控制领域和车载设备中的可剪裁的嵌入式实时操作系统。      LOS具有的功能目录如下:      1   任 ...…

查看全部问答>

请问谁有在evc平台上实现“打电话”的程序例子

我要放到windows mobile上面跑起来,最好还能有获取通讯录的功能,我不太清楚这里面的流程。谢谢各位大虾!…

查看全部问答>

万年历、温度12864液晶显示

replyreload += \',\' + 1109623; 这个是实物效果哦! 这个是仿真图哦! 这是仿真显示部分。   电路包括温度检测、时钟控制、闹铃报警、液晶显示等、、、、 粗糙的焊接工艺,望大家见谅啊! 带纽扣电池,可以给时钟芯片 ...…

查看全部问答>

请问有什么好方法可以减小RF接收电路接收到的噪音

这几天做一个51项目,要用到RC-R01A这个RF接收模块,模块连接51单片机的RXD串口接收端,但是在实验的时候,却发现从RF接收模块收到的噪音太多了····以至于单片机不断的处理没用的噪音,我在无线这方面是个小白,请问有什么方法可以滤掉从RF接收 ...…

查看全部问答>

晒晒MSP430低功耗学习笔记

从“低功耗特性图”可以足够让人感叹430在低功耗这方面的强项了。从数据手册中可以知道,MSP430低功耗模式共有5 种,为 LPM0~LPM4(LOW POWER MODE )。CPU 运行状态称为AM(ACTIVE MODE )模式。下图2显示出各种工作模式的耗电量,可以看出,AM ...…

查看全部问答>

G2553 AD采集正弦波的数据怎么那么多次都是0啊

本人新手一枚,在做AD采集正弦波的数据  但是怎么那么多次结果都是0啊,求解…

查看全部问答>

从打酱油到现在

告别了父母,来到大学校园,很迷茫,以为到了大学就是来耍的,其实不然,大学更应该好好学习,这也是我在看到郭天祥的书上讲自己的大学生活受到的启发。从那时起,我就天天往实验室跑,去看去学习。我也知道自己的基础很差(普高文科毕业),学习单 ...…

查看全部问答>

分享TI22-MSP430电容单触式传感器设计指南

此应用报告讨论采用MSP430微处理器来设计RC型电容单触式传感器。MSP430具有一些独特的特性非常适合与电容式触摸传感器相连接。RC型方法无需专用外设且可通过MSP430产品系列中的所有器件实施。此方法本身还具有低功耗特性可实现超低功耗的应用。 此 ...…

查看全部问答>

大家都看看

本帖最后由 paulhyde 于 2014-9-15 03:20 编辑 大家看看    …

查看全部问答>