(12)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,从而使系统以最低功耗运行。);
第三个方法就是降低工作时钟频率。
文章摘录于:http://blog.lehu.shu.edu.cn/879836630/A449074.html
转载于:https://www.cnblogs.com/qingfengshuimu/p/4357819.html
(12)MSP430F5529 常用内置函数和一些说明相关推荐
- python常用内置函数总结-Python 常用内置函数
Python 常用内置函数如下: 1. abs()函数返回数字的绝对值. print( abs(-45) )# 返回45print("abs(0.2):",abs(0.2))#返回 ...
- 零基础学Python(第二十二章 常用内置函数)
本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...
- 04.Beetl常用内置函数以及安全输出---《Beetl视频课程》
本期视频实现了三个功能,模糊搜索.标签分类.登录/注销功能: 内容简介:使用了常用内置函数,以及安全输出,实现了上面提到的三个业务 一起学beetl目录:https://my.oschina.net/ ...
- T-SQL备忘(6):常用内置函数
T-SQL备忘(6):常用内置函数 日期和时间函数: 1.获取当前时间:GETDATE() select GETDATE() 返回: 2015-04-27 20:52:06.700 2.返回时间的部分 ...
- java beetl 视频_04.Beetl常用内置函数以及安全输出---《Beetl视频课程》
本期视频实现了三个功能,模糊搜索.标签分类.登录/注销功能: 内容简介:使用了常用内置函数,以及安全输出,实现了上面提到的三个业务 作者:GK 常用内置方法 date 返回一个java.util.Da ...
- MySQL 常用内置函数与所有内置函数
MySQL 常用内置函数 [数值函数] Abs(X) //绝对值abs(-10.9) = 10 Format(X,D) //格式化千分位数值format(1234567.456, 2) =1,234, ...
- python拟合三元函数_python基础教程之常用内置函数、三元运算、递归
目录 常用内置函数 abs/round/sum eval/exec enumerate max/min sorted zip map filter 补充:reduce lambda 初识递归 再谈递归 ...
- 8.Hive基础—函数—系统内置函数、常用内置函数、自定义函数、自定义UDF函数、自定义UDTF函数
本文目录如下: 第8章 函数 8.1 系统内置函数 8.2 常用内置函数 8.2.1 空字段赋值 8.2.2 CASE WHEN THEN ELSE END 8.2.3 行转列 8.2.4 列转行 8 ...
- 1.3.2 常用内置函数
常用内置函数(Built-In Functions,BIF)不需要导入任何模块即可直接使用,在IDLE中执行如下命令可以列出所有内置函数和内置对象,如代码块1.3.2.1所示: 1 >>& ...
最新文章
- java程序解压/压缩.gz文件
- android子view获取父布局,Android获取布局父ID(Android get layout parent id)
- access开发精要(9)-排序
- 后副车架焊接机器人_车架全自动焊接机器人的日常维护保养方法
- 手机知识:手机的快充技术是什么,看完本文你就明白了!
- 创建Podfile,添加类库,中途添加库指令
- Exchange Server 2013多域名证书申请
- OpenShift 4 - Knative教程 (1) 创建Serverless运行环境
- ftp linux 服务器 麒麟_麒麟系统安装ftp
- 网易MCtalk泛娱乐科技峰会:泛娱乐的未来时代属于科技创新者
- DeepMind的脑补AI再获新技能:看文字知场景、复杂环境、连续视频……
- Mysql 5.7 for windows 免安装版(解压版)安装和配置
- 601. 体育馆的人流量
- 圈圈教你玩USB(第二版) 笔记
- MATLAB如何导出高分辨率的模型图片、PDF
- 计算机固态硬盘与机械硬盘的区别是什么,电脑固态硬盘与机械硬盘的区别是什么,应该如何选择...
- 2016微信数据报告 大数据展示微信生活
- js 身份证 正则校验 大陆、香港、澳门、台湾 身份证 正则校验
- 数据安全传输平台项目笔记
- Git入门-github
热门文章
- Android USB 属性设置:ADB、RNDIS、MTP等
- Matlab与C/C++/Java的一些区别
- LVDS收发传输实例
- qt开发环境 - c++字符串操作
- linux增量安装tomcat_linux与windows下tomcat的java内存设置
- 美团科技 Java工程师_美团网java工程师面试都会问哪些问题?
- mplab x ide 中文使用手册_SCI必备利器:翻译又快又准,强推这款超牛X的神器!...
- linux中iptable中端口,Linux如何打开iptables中的端口
- vtune mysql user_intel vtune 介绍、安装和使用
- python sum函数numpy_解决Numpy中sum函数求和结果维度的问题