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

  (1)  MSP430F5529支持最高工作频率为25MHZ,也就是说你通过

                锁相环倍频来提高系统运行速度是有一个限制的,

                最高只能到25MHZ(再高没意思了)

   2几个重要的内联函数

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

                        __bic_SR_register();

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

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

                        __bis_SR_register();

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

                        __interrupt

  放在函数前面,标志中断函数。下面这段程序是看门狗WDT的中断服务函数。WDT_VECTOR为看门狗的中断向量。举例:

   #pragma vector=WDT_VECTOR

  __interrupt void WatchDog(void)

  {… }

                 __monitor

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

                 __bic_SR_register_on_exit();

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

    ⑥ __bis_SR_register_on_exit();

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

    ⑦ __no_init

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

    ⑧ __disable_interrupt

          关闭总中断,另外一个相同作用的表达为:    _DINT()

    ⑨__enable_interrupt

                     开启总中断,另外一个相同作用的表达为:    _EINT()

    ⑩__even_in_range(  ,  );

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

    意思是:只有在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);

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

   E.__bcd_add_long(unsigned long,unsigned long);

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

   F. __delay_cycles(x);

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

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

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

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

   4)头文件msp430f5529.h

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

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

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

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

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

  (5中断寄存器的名字

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

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

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

  {… }

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

  到目前,我们已经遇到了看门狗中断WDT_VECTOR、引脚P2的外部中断PORT2_VECTOR、定时器A0CCR1-CCR4TAIFG)中断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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始学android编程_android初学者的入门秘籍

大概是去年年底开始接触android原本是学习嵌入式的我,领导让我看看能不能搞一下这个android APP。一开始的我懵逼得很。。。这android APP 不是得用java写吗??? 现在我看网上说比较多还是用kotlin,没去学。。。好家伙&…

修改了sql默认路径无法登录服务器,PostgreSQL错误'无法连接到服务器:没有这样的文件或目录'...

像其他一些人一样,当我在我的项目中运行rake db:migrate或者甚至为我的Ruby on Rails 3.2应用程序尝试大多数数据库任务时,我收到此错误.PGError(无法连接到服务器:没有这样的文件或目录.服务器是否在本地运行并接受Unix域套接字上的连接"/tmp/.s.PGSQL.5432"&#x…

QMarkDowner编译

第一次完整的编译一个工程。哈哈 记录一下 准备环境 我的环境是win7 x64, python2.7.5 x64的。 python 3.x的我没试过,有需要的朋友可以试一下。 安装python2.7.5 x64 确保将安装路径加入到Path中 PyQt4 啊 我的环境是win的 当然要下win版 (PyQt4-4.10.3-gpl-Py2.7-Qt4.8.5-x6…

C++ STL的查找算法

假设你有一个序列容器,或者有一对迭代器标识了一个区间,现在你希望在容器中查找一些信息,这样的查找工作如何进行呢?你的选择往往是: count,count_if,find,find_if,binary_search,lower_bound,upper_bound,equal_range.该如何选择…

习题七

umask 022 ,请描述该命令的含义创建目录时默认的权限为:755 rwxr-xr-x创建文件时默认的权限为:644 rw-r--r--note:创建文件的默认权限是拿掉了X 所以最大为666,而目录最大为777 umask NUM 就是去掉相应的权限转载于:https://blo…

web中的cookie管理

本篇是以JSP为背景介绍,但是在web开发中也是相同的原理。 什么是cookie 由于http是一种无状态的协议,因此服务器收到请求后,只会当做一次新的请求。即便你重复发送了1000次同样的请求,这1000次都属于独立的请求。 这样显然效率很低…

unity怎么设置游戏页面_杭州有没有正规的unity游戏开发培训机构?

现在Unity游戏开发是个火热的行业,薪资待遇比较高,未来的发展方向和前景也比较不错,很多人也都想成为专业Unity游戏开发工程师,学习Unity游戏开发已经成为很多追求更好就业前景的人的选择。学习专业、系统的Unity游戏开发知识并达…

VC++ 使用attributes定义接口

1.定义预处理命令_ATL_ATTRIBUTES 2.在一个全局的Cpp文件里面配置module的attribute [module(dll, uuid "{3845951F-15B8-4286-8E7D-E9D4F5C7B6CE}", name "TestApp")]3.定义接口 [object,uuid("9F414A8A-1D5E-4aff-A60E-CFD65155ABB6"),dual,…

h3c 虚拟服务器 下一跳,H3CNE 312题和313题 直连路由静态路由的下一跳问题

321.在MSR 路由器上看到路由表里有如下显示: Destination/Mask Proto Pre Cost NextHop Interface 127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0 127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0 192.168.96.0/19 Direct 0 0 192.168.120.153 S6/0 那么关于目的地321.在MS…

C++成员变量的初始化顺序问题

先来看两道题&#xff1a; // count algorithm example #include <iostream> // std::cout #include <algorithm> // std::count #include <vector> // std::vector using namespace std; class A { public:A() { cout << "in A()&q…

Knockout.Js案例一Introduction

在这第一个教程中,您将体验的一些基本知识构建的web UI Model-View-ViewModel使用knockout.js(MVVM)模式。案例1&#xff1a;添加:data-bind <p>First name: <strong data-bind"text:firstName">1</strong></p><p>Last name: <stro…

C#注册表常用操作

1&#xff1a;加键 改值 Microsoft.Win32.RegistryKey Key Microsoft.Win32.Registry.CurrentUser.CreateSubKey( "Software\Microsoft\Internet Explorer\Main"); Key.SetValue( "Window Title" , value ); Key.Close(); …

谷歌浏览器外贸版_做外贸快两个月,没有单怎么办?

Hello 大家好&#xff0c;我是Jack。今天给大家更新一篇在知乎看到的外贸问题&#xff1a;做外贸快两个月&#xff0c;没有单怎么办?外贸这个话题在知乎算是小众话题了&#xff0c;相比较于职场&#xff0c;英语学习&#xff0c;国际政治&#xff0c;IT等&#xff0c;这些话题…

React Native通信机制详解

http://blog.cnbang.net/tech/2698/ React Native是facebook刚开源的框架&#xff0c;可以用javascript直接开发原生APP&#xff0c;先不说这个框架后续是否能得到大众认可&#xff0c;单从源码来说&#xff0c;这个框架源码里有非常多的设计思想和实现方式值得学习&#xff0c…

C++11系列学习之四----auto

在哪些情况下要申明类型&#xff1a; 定义变量类型 函数返回值&#xff0c;函数参数 表达式返回变量类型 auto关键字原理 在定义变量的时候必须申明类型&#xff0c;c是强语言类型&#xff0c;在编译阶段需要知道类型&#xff0c;这样的好处是程序效率更高&#xff0c;而…

windows 自动copy远程服务器文件

net use h: \\123.45.67.000\T1dbbackup 123456/user:administrator ------远程服务器IP123.45.67.000 。T1dbbackup&#xff1a;共享文件夹 。 h :映射到本机的盘符。 用户名&#xff1a;administrator&#xff0c;密码&#xff1a;123456copy h:\*.* f:\T1DB ------复…

eclipse 不能切换输入法

按了AltShift键&#xff1f;再按一次把EN切换成CN&#xff0c;然后再CtrlShift就可以切换输入法转载于:https://www.cnblogs.com/jiayonghua/p/3413827.html

excel打开2个独立窗口_谢楠称女性独立的不是钱是心 谢楠与吴京婚后生育2个儿子...

近日&#xff0c;在综艺节目《幸福三重奏》 三日谈妻子篇中&#xff0c;谢楠被问到如何看待独立女性时&#xff0c;反问记者会不会问吴京同样的问题&#xff1b;随后回答道&#xff0c;女性独立的不是钱&#xff0c;而是你的心&#xff1b;楠姐的回答超级霸气了&#xff0c;你们…

C++11系列学习之五-------decltype

使用场景 在C中经常要用到很长的变量名&#xff0c;如果已经有变量和你将使用的变量是一个类型&#xff0c;即可使用decltype关键字 来申明一样的类型变量。 decltype原理 返回现有变量类型&#xff0c;decltype是一个关键字&#xff0c;而不是一个函数&#xff0c;这有啥区别…

Linux学习 Unit 9

Unit9.openssh-server1.openssh-server功能&#xff1a;让远程主机可以通过网络访问sshd服务&#xff0c;开始一个安全shell2.客户端连接方式ssh远程主机用户远程主机ip[rootdesktop0 ~]# ssh root172.25.0.11The authenticity of host 172.25.0.11 (172.25.0.11) cant be esta…