導航:首頁 > 操作系統 > msp430單片機中斷

msp430單片機中斷

發布時間:2024-07-07 10:01:13

⑴ 鐢 IAR 緙栬瘧msp430 鍗曠墖鏈猴紝涓鏂涓鐩存棤娉曢氳繃鎬庝箞鍥炰簨

#include "io430.h"涓#include "msp430g2553.h" 榪欎袱涓澶存枃浠跺彧鑳戒嬌鐢ㄤ竴涓
騫朵笖瀵逛簬鑺鐗噈sp430g2553鏉ヨ達紝io430.h涓鍖呭惈io430g2553.h鏂囦歡

⑵ MSP430單片機中,如何設置中斷子程序,可以使系統從LPM4 模式進入活動模式。

在主函數中進入休眠模式並打開總中斷,然後在中斷程序裡面執行想要的操作就可以了。

一般XT2IN的頻率為高頻,按實際應用時的要求來選用;XIN為低頻,可以是32 768Hz。XIN的用途主要是在低功耗時使系統保持「活著」。MSP430共有5種省電方式,即LPM0~4。

系統在LPMO-3方式下可以被喚醒,LPM4則不能。大多數應用場合都希望MSP430平時進入睡眠狀態,降低功耗,而後定時或被外界中斷喚醒,執行相應的程序後再次進入睡眠狀態,再次被喚醒,其中因為LPM3是滿足要求且功耗最低的一種方式,所以它被使用得最多。

(2)msp430單片機中斷擴展閱讀:

MSP430系列單片機是一個16位的單片機,採用了精簡指令集(RISC)結構,具有豐富的定址方式(7 種源操作數定址、4 種目的操作數定址)、簡潔的 27 條內核指令以及大量的模擬指令;大量的寄存器以及片內數據存儲器都可參加多種運算;還有高效的查表處理指令。這些特點保證了可編制出高效率的源程序。

⑶ MSP430單片機如何清除各個中斷標志

(1)清除各個埠的外中斷用:PxIFG,相應的位置0即可;
(2)清除Timer中斷用:TAIFG,TBIFG,相應的位置0即可;

MSP430的16個外中斷比如軟體清除Flag,在進入外中斷後,首先要做的就是把相應的PxIFG清0;
而定時器Timer中斷是自動清除Flag;
還有在中斷嵌套的時候會用到,在進入中斷後,MCU會自動把全局中斷位GIE清零,這樣在進入本中斷後就不會再相應其他中斷,若要進行中斷嵌套,必須在進入中斷後把GIE再置1.
我只知道這么多了。

⑷ MSP430單片機I\O埠的上升沿中斷和下降沿中斷有什麼區別

上升沿中斷就是檢測到外部IO電平由低到高則產生中斷,下降沿則是由高到低則產生中斷。實際應用時結合具體電路來使用。比如外部器件某埠正常時是高電平,出問題了變為低電平,msp430要檢測到這樣的信號,就要設置成下降沿中斷。

⑸ 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

閱讀全文

與msp430單片機中斷相關的資料

熱點內容
黃鑽石的圖標是什麼app 瀏覽:774
mac白色文件夾問號 瀏覽:718
怎麼申請郵箱的伺服器 瀏覽:13
c項目兩個工程怎麼編譯 瀏覽:645
知乎app有什麼作用 瀏覽:451
單片機帶的比較器 瀏覽:391
程序員都是精英 瀏覽:19
10種編程語言 瀏覽:749
綿陽學駕駛手機上下什麼app 瀏覽:129
python如何模擬網頁操作 瀏覽:40
單片機多文件編譯方法 瀏覽:839
不動產壓縮時間 瀏覽:571
租房管理平台源碼 瀏覽:65
復樂園pdf 瀏覽:457
程序員找到公交車 瀏覽:698
嬰兒寶寶操有什麼APP推薦 瀏覽:73
如何將資料庫附加到伺服器上 瀏覽:391
php退出循環 瀏覽:479
夢幻西遊怎麼修改伺服器人數上限 瀏覽:332
自動開啟命令 瀏覽:847