MSP430F5529 番外(一)常用内置函数和一些说明

发布者:HeavenlySunset最新更新时间:2015-08-20 来源: eefocus关键字:MSP430F5529  内置函数 手机看文章 扫描二维码
随时随地手机看文章
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,从而使系统以最低功耗运行。
);
第三个方法就是降低工作时钟频率。
关键字:MSP430F5529  内置函数 引用地址:MSP430F5529 番外(一)常用内置函数和一些说明

上一篇:MSP430F5529 (三)统一时钟系统UCS-1
下一篇:MSP430F5529 (二)看门狗的设置

推荐阅读最新更新时间:2024-03-16 14:29

MSP430F5529 DriverLib 库函数I2C驱动OLED屏幕
平台:Code Composer Studio 10.4.0 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) I2C驱动代码 P3.0为SDA,P3.1为SCL MSP430F5529_I2C.c #include driverlib.h #define I2C_USCI_BASE USCI_B0_BASE #define I2C_USCI_VECTOR USCI_B0_VECTOR #define I2C_USCI_IV UCB0IV #define I2C_BUF_LENGTH 32 static char i2c_buf ; static
[单片机]
<font color='red'>MSP430F5529</font> DriverLib 库<font color='red'>函数</font>I2C驱动OLED屏幕
MSP430F5529 上手小例程1
* 将F553 设置按键脉冲 按下P1.1,P1.4产生一个脉冲,时间为5s 按下p2.1,P1.4产生一个脉冲,时间为1.2s #include msp430.h #include msp430f5529.h /** * main.c * 将F553 设置按键脉冲 * 按下P1.1,P1.4产生一个脉冲,时间约为5s * 按下p2.1,P1.4产生一个脉冲,时间约为1.2s */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer //设置输入输出 P2DIR &= ~BIT1; P1DIR &= ~BIT1; P1DIR
[单片机]
MSP430F5529之超声波测距+OLED 显示
一、超声波介绍 利用TI公司的MSP430F5529单片机+超声波模块+OLED 实现 这里主要是利用单片机定时器的捕获功能来捕获超声波高电平持续时间,再计算得到距离,最后再在OLED 屏幕上显示出来,上图: 这里是把数字用了32号的,比较清晰,大家也可以自己更改 具体怎么接OLED 屏幕上一讲里面代码也有详细介绍,这里的超声波模块的Trig我接的是1.3,Echo接的是1.2 P1.2 为echo 设置为捕获模式 介绍:P1.2 具有端口中断的通用数字I / O ,TA0 CCR1捕获:CCI1A输入,比较:Out1输出 BSL接收输入 P1.3 为Trig 设置为 数字i/o模式 介绍:P1.3
[单片机]
<font color='red'>MSP430F5529</font>之超声波测距+OLED 显示
MSP430F5529学习笔记(一)——点灯|IO输出
开始学习和了解TI公司旗下的一款低功耗MCU芯片——MSP430F5529,根据了解该单片机可用多种方式编写,例如大家常用的IAR,CCS,甚至你可以用KEIL和VScode配置环境进行代码的烧写,当然也有相对无脑的Energia可供选择。 以上分别为部分可编译MSP430F5529的编译器,本次学习我们将在MSP430F5529开发板平台为基础进行,采用CCS作为基础进行学习,想快速上手的朋友可以使用energia(类似arduino的编译方式)。 在所有的单片机学习过程中都逃不过点灯,点灯是基础的IO口电平输出的经典案例,通过它可以了解基本的单片机IO口的输出电平方式,本着万物皆可点灯的理念,首先进行点灯实验。
[单片机]
<font color='red'>MSP430F5529</font>学习笔记(一)——点灯|IO输出
MSP430F5529 番外(三)一些问题解答及中断系统说明
(1)CCSV5中变量长度。 不同的芯片或者不同的编译环境下,变量长度的定义也是不同的。一般情况下,大家对变量长度也都不是很在意。但是,在做测量或者节约内存的时候,就有必要了,否则很可能造成变量溢出或者浪费空间。下表给出常用的几个变量类型的长度:默认值请看下表: (2)大家新建工程的时候,有时候会在工程里面一个个添加很多头文件以及相应的源文件。如液晶显示头文件HAL_Dogs102x6.h,这个头文件很坑爹,想要用它,那么就不得不一个个添加十几个相关联的文件。于是,问题就来了,但你头文件添加太多的时候,编译很可能就会报错: program will not fit into ,意思大概就是内存不够。内存一般来说
[单片机]
<font color='red'>MSP430F5529</font> 番外(三)一些问题解答及中断系统说明
MSP430F5529 DriverLib 库函数学习笔记(七)定时器B
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 硬知识 16位定时器B(Timer_B)和Timer_A一样,是MSP430单片机的重要资源。Timer_B往往比Timer_A功能更强大一些,MSP430F5529单片机的Timer_B定时器具有7个捕获/比较寄存器。 Timer_B特点及结构 Timer_B定时器具有以下特点:  具有4种工作模式和4种可选计数长度的异步16位定时/计数器;  参考时钟源可配置;  高达7个可配置的捕获/比较寄存器;  具有PWM输出能
[单片机]
<font color='red'>MSP430F5529</font> DriverLib 库<font color='red'>函数</font>学习笔记(七)定时器B
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved