(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.pswp.cn/news/259215.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259215.shtml
英文地址,請注明出處:http://en.pswp.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…