導航:首頁 > 編程語言 > msp430編程教程

msp430編程教程

發布時間:2024-04-26 15:36:08

A. msp430單片機編程中 ^= ,&=~, |= 是什麼意思

舉個例子
P4OUT &= ~BIT0等效於P4OUT = P4OUT ^ (~BIT0); 按位與
同樣
P4OUT ^= ~BIT0等效於P4OUT = P4OUT ^ (~BIT0); 按位異或
P4OUT |= ~BIT0等效於P4OUT = P4OUT | (~BIT0); 按位或

比如原來P4輸出為0000 1111即P4OUT=0x0F
經過P4OUT &= ~BIT0
BIT0=0000 0001 取反~BIT0=1111 1110

0000 1111 & 1111 1110
結果為0000 1110 即P4OUT = 0x0E;
這樣P4的其它IO口輸出狀態不變只改變了P4的BIT0為低

B. msp430編程定時器B的中斷

微控論壇原創主貼 作者:bobo 微控論壇特約

因DC的邀請寫一個有關中斷的東東,我也接觸430不久只能以自己的心得體會更大家分享,若有紕漏懇請見諒。MSP430用戶手冊上有的中斷介紹我就不贅述了,大家可以看User Guider.我講的主要是書上沒有的,或者是點的不透的。希望對大家有用。

1.中斷嵌套,優先順序
430總中斷的控制位是狀態寄存器內的GIE位(該位在SR寄存器內),該位在復位狀態下,所有的可屏蔽中斷都不會發生響應。可屏蔽中斷又分為單中斷源和多中斷源的。單中斷源的一般響應了中斷服務程序中斷標志位就自動清零,而多中斷源的則要求查詢某個寄存器後中斷標志位才會清零。由於大多數人接觸的第一款單片機通常是51,51單片機CPU在響應低優先順序的中斷程序過程中若有更高優先順序的中斷發生,單片機就會去執行高優先順序,這個過程已經產生了中斷嵌套。而430單片機則不同,如果在響應低優先順序中斷服務程序的時候,即使來了更高優先順序的中斷服務請求,430也會置之不理,直至低優先順序中斷服務程序執行完畢,才會去響應高優先順序中斷。這是因為430在響應中斷程序的時候,總中斷GIE是復位狀態的,如果要產生類似51的中斷嵌套,只能在中斷函數內再次置位GIE位。

2.定時器TA
TimerA有2個中斷向量。TIMERA0,TIMERA1
TIMERA0隻針對CCR0的計數溢出
TIMERA1再查詢TAIV後可知道是CCR1,還是CCR2,亦或TAIFG引起的,至於TAIFG是什麼情況下置位的,則要看TA工作的模式
具體看用戶手冊。還有一點TA本身有PWM輸出功能,無須借用中斷功能。在這個問題上經常出現應用彎路的是如何結合TA和AD實行定時采樣的問題,很多人都是在TA中斷里打開AD這樣來做。這是不適宜的,因為430 的ADC10,ADC12(SD16不熟悉,沒發言權)模塊均有脈沖采樣模式和擴展采樣模式。只要選擇AD是由TA觸發采樣,然後把TA設置成PWM輸出模式,當然輸出PWM波的都是特殊功能腳,但是在這里它是不需要輸出的,所以引腳設置不必理會。值得關心的就是PWM的頻率,也就是你AD的采樣率。

3.看門狗復位
看門狗有2種工作模式:定時器 ,看門狗
定時器工作模式下WDTIFG在響應中斷服務程序有標志位自動復位,而在看門狗模式下,該標志位只能軟體清零。但是怎麼判斷復位是由於WDT工作在看門狗模式下的定時溢出引起的,還是看門狗寫密鑰錯誤引起的呢?………………………………
答案是沒有方法,至少我沒見過有什麼方法,也沒見過周邊的人有什麼方法。若有人知道方法謝謝分享。
4.經常有人會問這個語句的MOV.B #LPM0,0(SP)的作用。假如你在進入中斷函數之前,430是在LPM0下待機,若要求執行完中斷函數之後進入LPM3待機,在中斷函數里寫MOV.B #LPM3,SR是無效的。因為在進入中斷時430會把PC,SR壓棧,( SR內保存著低功耗模式的設置)即使你寫了MOV.B #LPM3,SR,在退出中斷出棧時SR會被重新設置成低功耗0,要達到這樣的目的,只能更改堆棧內SR的設置:MOV.B #LPM0,0(SP)。

5中斷向量:
430的中斷向量是FFE0H—FFFFH,一共32個位元組也就是FLASH的最後一段,430的FLASH有大有小,但是最後地址肯定是FFFFH(大FLASH超過64K的除外)所以它們的起始地址是不一樣的,而一般IAR默認編譯都是把程序放在FLASH開始的位置(不包括信息段)。
有個值得弄清楚的問題是:什麼是中斷向量?中斷向量實際就是保存中斷函數入口地址的存儲單元空間。就像FFFEH+FFFFH這2個位元組是復位中斷向量,那麼它存儲的就是主函數在FLASH內的起始地址,假如主函數保存在以0x1100為起始地址的FLASH塊內,那麼你會發現FFFFH 內保存的是0x11, FFFE內保存的是0x00.其他什麼TimerA,ADC12,所有的都一樣。只是你每次寫的程序長短不一,中斷函數放的位置不一樣。IAR編譯器都會給你定好,然後在你用JTAG燒寫程序的時候,把這個地址,燒寫到相應的中斷向量。因為中斷函數所處地址可以由用戶自定義,也可以讓IAR自動編譯,所以這個地址除了源代碼開發人員知道,其他人是不知道的,BSL就是應用這32個位元組的中斷向量內的內容的特殊性設置的密碼。但是有幾個東西在430是不變的,就是觸發中斷的條件滿足後,它到哪個地方去定址中斷服務函數的入口地址,是TI 在做430時就固化好,定死的。比方說上電復位的時候,它知道去FFFE,FFFF單元找地址,而不去FFE0,FFE2找地址,這個映射關系是430固化不變的。可有的時候你就是需要改變「中斷向量」,這怎麼辦?430FLASH程序自升級里有時就會碰到這個問題,方法是在430原來默認的中斷向量表內做一個跳轉操作,同樣以上電復位為例:
ORG 0x2345
PowerReset: mov.w &0xFCFE,PC
…………………………
…………………………
ORG 0xFFFE
DW PowerReset

C. 怎樣實現TI MSP430單片機低功耗

430單片機的低功耗實現方式可以通過軟體編程來實現。

為了使MSP430最大限度的達到低功耗,對於MSP430未使用的GPIO而言,應該將其設置為輸出;或者是設置為輸入,但是將管腳的電平固定,可以通過外部電路將管腳連接至Vcc或者GND,也可使能內部上下拉電阻,將管腳電平固定。

對於MSP430而言,大部分情況下,測量到的功耗與datasheet不符均是由對MSP430未使用的GPIO處理不當引起的。默認情況下,MSP430的GPIO是作為輸入的,其等效電路如下圖所示,為推挽模式:

當GPIO管腳配置為輸入管腳且外部電平處於浮動狀態時(0<Vin<Vcc),那麼內部的MOSFETs管的導通電流本身就處於一個不穩定的值,會導致整體功耗的升高,示意圖見上圖右半邊。另外過高或過低的溫度更會加劇這種不穩定,且當供電電壓升高時,本身MOSFETs管的導通電流也會變大。故在高壓和低溫雙重作用下,就會出現功耗攀升現象。

D. 啊,MSP430用什麼軟體編程

MSP430用IAR Embedded Workbench軟體編寫程序和編譯代碼。

MSP430單片機稱之為混合信號處理器,是由於其針對實際應用需求,將多個不同功能的模擬電路、數字電路模塊和微處理器集成在一個晶元上,以提供「單片機」解決方案。該系列單片機多應用於需要電池供電的攜帶型儀器儀表中。

(4)msp430編程教程擴展閱讀:

MSP430系列的部分產品具有Flash存儲器,在系統設計、開發調試及實際應用上都表現出較明顯的優點。TI公司推出具有Flash型存儲器及JTAG邊界掃描技術的廉價開發工具MSP-FET430X110,將國際上先進的JTAG技術和Flash在線編程技術引入MSP430。

這種以Flash 技術與FET開發工具組合的開發方式,具有方便、廉價、實用等優點,給用戶提供了一個較為理想的樣機開發方式。

閱讀全文

與msp430編程教程相關的資料

熱點內容
安卓版滴滴出行怎麼刪除行程 瀏覽:937
共享文件夾需要開啟什麼埠 瀏覽:759
粵語之家粵語站 瀏覽:864
一對夫妻的電影叫什麼 瀏覽:946
應用加密了如何解密 瀏覽:577
編程代碼比賽平台 瀏覽:726
穿越在很多電影的小說 瀏覽:524
angularjs數據加密 瀏覽:523
k66單片機 瀏覽:735
鴻蒙文件夾如何自動歸類 瀏覽:666
慧醫通醫生端安卓手機怎麼下載 瀏覽:699
電影放到安卓手機哪個文件夾 瀏覽:192
VT命令 瀏覽:590
ftp鏈接到linux伺服器地址 瀏覽:479
美國大尺度青春電影 瀏覽:21
李采譚演醫生的電影名稱 瀏覽:409
移動辦公app第一次登錄伺服器地址 瀏覽:239
日本功夫電影 瀏覽:57
文件包文件夾 瀏覽:592
主角每次死亡都會變成另一個人 瀏覽:807