430的中斷是按照下圖1的優(yōu)先級順序定義的,有三種中斷:
1.系統(tǒng)重置、2.不可屏蔽中斷(NMI)、3.可屏蔽中斷。
圖1.中斷優(yōu)先級
部分具體的中斷優(yōu)先級由高到低為:
PORT2_VECTOR (1 * 2u) /* 0xFFE2 Port 2 */
PORT1_VECTOR (4 * 2u) /* 0xFFE8 Port 1 */
TIMERA1_VECTOR (5 * 2u) /* 0xFFEA TImer A CC1-2, TA */
TIMERA0_VECTOR (6 * 2u) /* 0xFFEC TImer A CC0 */
ADC_VECTOR (7 * 2u) /* 0xFFEE ADC */
USART0TX_VECTOR (8 * 2u) /* 0xFFF0 USART 0 Transmit */
USART0RX_VECTOR (9 * 2u) /* 0xFFF2 USART 0 Receive */
WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog TImer */
COMPARATORA_VECTOR (11 * 2u) /* 0xFFF6 Comparator A */
TIMERB1_VECTOR (12 * 2u) /* 0xFFF8 Timer B CC1-2, TB */
TIMERB0_VECTOR (13 * 2u) /* 0xFFFA Timer B CC0 */
NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maska××e */
RESET_VECTOR (15 * 2u) /* 0xFFFE Reset [Highest Priority] */
其中可屏蔽中斷分為系統(tǒng)NMI(SNMI)和用戶NMI(UNMI),一般來說,不可屏蔽中斷不受GIE標志位的影響。用戶不可屏蔽中斷的中斷源為NMIIE、ACCIE和OFIE,當(dāng)響應(yīng)用戶不可屏蔽中斷后,其他不可屏蔽中斷就自動被禁止,以防止同級別的中斷發(fā)生產(chǎn)生中斷嵌套。當(dāng)同時有多個中斷來的時候才有優(yōu)先級的考慮(優(yōu)先級順序可查看向量表)。有中斷響應(yīng)以后自動關(guān)閉總中斷,這個時候即使來更高優(yōu)先級的中斷都不會響應(yīng)。要中斷嵌套的話,就必須在中斷中打開總中斷。
關(guān)于中斷嵌套,資料上是這么講的:
1)430默認的是關(guān)閉中斷嵌套的,除非你在一個中斷程序中再次開總中斷EINT;
2)當(dāng)進入中斷程序時,只要不在中斷中再次開中斷,則總中斷是關(guān)閉的,此時來中斷不管是比當(dāng)前中斷的優(yōu)先級高還是低都不執(zhí)行;
3)若在中斷A中開了總中斷,則可以響應(yīng)后來的中斷B(不管B的優(yōu)先級比A高還是低),B執(zhí)行完再繼續(xù)執(zhí)行A。注意:進入中斷B后總中斷同樣也會關(guān)閉,如果B中斷程序執(zhí)行時需響應(yīng)中斷C,則此時也要開總中斷,若不需響應(yīng)中斷,則不用開中斷,B執(zhí)行完后跳出中斷程序進入A程序時,總中斷會自動打開;
4)若在中斷中開了總中斷,后來的中斷同時有多個,則會按優(yōu)先級來執(zhí)行,即中斷優(yōu)先級只有在多個中斷同時到來時才起做用!中斷服務(wù)不執(zhí)行搶先原則。
5)對于單源中斷,只要響應(yīng)中斷,系統(tǒng)硬件自動清中斷標志位,對于TA/TB定時器的比較/捕獲中斷,只要訪問TAIV/TBIV,標志位倍被自動清除;
對于單源中斷,只要響應(yīng)中斷,系統(tǒng)硬件自動清中斷標志位;
對于TA/TB定時器的比較/捕獲中斷,只要訪問TAIV/TBIV,標志位被自動清除;
對于多源中斷要手動清標志位,比如P1/P2口中斷,要手工清除相應(yīng)的標志;如果在這種中斷用“EINT();”開中斷,而在打開中斷前沒有清標志,就會有相同的中斷不斷嵌入,而導(dǎo)致堆棧溢出引起復(fù)位,所以在這類中斷中必須先清標志再打開中斷開關(guān)。
對于多源中斷,我在應(yīng)用時遇到了一些問題,程序總是在運行時跑飛。我曾經(jīng)用過的程序中有兩個中斷源,但是已經(jīng)按照要求在中斷服務(wù)程序中清楚了標志位,但程序還是跑飛了,現(xiàn)在還未找到原因,還要繼續(xù)修改,要請教一下學(xué)長。
官方給的多源中斷的例子是:
#pragma vector = PORT2_VECTOR
__interrupt void port2(void)
{
switch(P2IV)
{
case P2IV_P2IFG6:
P1OUT ^= BIT0;break; //LED1 亮滅
case P2IV_P2IFG7:
P1OUT ^= BIT1;break; //LED2 亮滅
default :break;
}
}
在這個中斷中由于訪問了P2IV這個寄存器,所以標志位被自動清除。
上一篇:MSP430單片機系列通用串行模塊的I2C模式
下一篇:單片機MSP430入門--理論②--時鐘模塊
推薦閱讀
史海拾趣
隨著全球?qū)Νh(huán)保和可持續(xù)發(fā)展的重視,Everbuild也將綠色環(huán)保理念融入到產(chǎn)品設(shè)計和生產(chǎn)過程中。公司采用環(huán)保材料和節(jié)能技術(shù),減少生產(chǎn)過程中的污染和能源消耗。同時,Everbuild還積極參與環(huán)保公益活動,倡導(dǎo)綠色生活方式。這些舉措不僅提高了公司的社會責(zé)任感,也為公司的可持續(xù)發(fā)展奠定了基礎(chǔ)。
面對日益增長的市場需求,Baneasa SA意識到必須提升產(chǎn)能以滿足客戶的需求。于是,公司投入大量資金對生產(chǎn)線進行升級改造,引進了先進的生產(chǎn)設(shè)備和技術(shù)。這些舉措使得Baneasa SA的產(chǎn)能得到了大幅提升,同時也保證了產(chǎn)品質(zhì)量的穩(wěn)定性和可靠性。
在科技日新月異的今天,Elite始終保持著對新技術(shù)和新趨勢的敏銳洞察力。公司不斷加大研發(fā)投入力度,積極探索新技術(shù)、新產(chǎn)品和新市場。同時,Elite還注重人才培養(yǎng)和團隊建設(shè),為公司未來發(fā)展提供有力保障。展望未來,Elite將繼續(xù)秉承創(chuàng)新、務(wù)實、進取的企業(yè)精神,致力于成為全球領(lǐng)先的電子科技企業(yè)。
請注意,以上故事均為虛構(gòu)內(nèi)容,僅供參考。
隨著環(huán)保意識的日益增強,ETC2公司也積極響應(yīng)國家環(huán)保政策,致力于推動ETC技術(shù)的綠色環(huán)保應(yīng)用。他們研發(fā)了低能耗、低排放的ETC設(shè)備,并推廣使用電子發(fā)票等環(huán)保支付方式。這些舉措不僅減少了能源消耗和環(huán)境污染,也為ETC2公司樹立了綠色環(huán)保的企業(yè)形象。
單片機控制RTL8019AS實現(xiàn)以太網(wǎng)接口實例,(C編寫可調(diào)試) 包括以太網(wǎng)初始化程序、發(fā)送程序和接收數(shù)據(jù)程序。 單片機系統(tǒng)為整個電路的主處理部分,其作用主要包括對 以太網(wǎng)接口芯片的初始化配置 以及以太網(wǎng)數(shù)據(jù)的發(fā)送和接收控制。 覺得不錯的請頂我?。 ? 查看全部問答∨ |
摘要:隨著檢測技術(shù)研究的不斷深入,對超聲檢測儀器的功能要求越來越高,單數(shù)碼顯示的超聲檢測儀測讀會帶來較大的測試誤差。進一步要求以后生產(chǎn)的超聲儀能夠具有雙顯及內(nèi)帶有單板機的微處理功能。本文簡要介紹了基于單片機的超聲波測距儀的主要硬件 ...… 查看全部問答∨ |
推薦一下中國的比較好的LED,芯片生產(chǎn)價格質(zhì)量方面 就我所用過的芯片作的比較,我所知道的是三安光電的藍白光芯片沒的話說。亮度高質(zhì)量也好,價格也還可以,大家有什么好的芯片可一推薦一下啊… 查看全部問答∨ |
|
嵌入式開發(fā)主要應(yīng)用java的哪部分?(java東西太多不想花太多時間研究) 嵌入式開發(fā)主要應(yīng)用C語言的哪部分?… 查看全部問答∨ |
|
在EVC下利用_wfopen()打開文件,怎樣操作刪除文件中某一部分內(nèi)容? 我利用fseek找到要刪除內(nèi)容的位置,然后將被刪除內(nèi)容后面的數(shù)據(jù)向前移動,將刪除部分內(nèi)容覆蓋。怎樣調(diào)整文件的長度,使文件變短為最終刪除內(nèi)容后的大??? 謝謝~… 查看全部問答∨ |
|
停滯一周了,希望各位大俠幫忙解決,具體問題如下: 做PCI驅(qū)動,普通方式的讀寫我已經(jīng)實現(xiàn)了,現(xiàn)在想通過DMA對設(shè)備進行讀寫。在網(wǎng)上看到的例子都是設(shè)備自帶DMA控制器,然后在EvtProgramDma例程中編程設(shè)備的DMA控制器。但我們的設(shè)備 ...… 查看全部問答∨ |
【求助】CC1100使用問題,有關(guān)CRC_AUTOFLUSH,求教各位大俠 小弟新學(xué)CC1100芯片,配合MSP430一起使用。最近配置CC1100時,發(fā)現(xiàn)PKTCTRL1.CRC_AUTOFLUSH 位如果使能的話,就接收不到數(shù)據(jù)了。在PKTCTRL0中的CRC_EN已經(jīng)打開。其他配置不變,如果CRC_AUTOFLUSH不打開的話,接收是沒有問題的,一打開就收不到數(shù)據(jù)。 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- ADI有獎下載活動之2——太陽能光伏發(fā)電解決方案
- 【EEWORLD第三十七屆】2012年04月社區(qū)明星人物揭曉!
- 高性能手機設(shè)計如何實現(xiàn)?手機高校評估研討會為您揭曉答案!
- 關(guān)注 PI 最新 SCALE-iDriver IC產(chǎn)品系列 答題有好禮!
- 月度原創(chuàng)精選評選2018年2月(總第2期)
- 免費申請TI 樣片, 曬訂單贏好禮!
- 報名有禮:【TI C2000在實時控制系統(tǒng)中的新特性】網(wǎng)絡(luò)直播誠邀您參與!
- 報名直播贏【手環(huán)、攝像頭、雨傘、手機支架】羅德與施瓦茨USB 3.2一致性測試
- 有獎直播|英飛凌OBC解決方案深度詳解 報名中!
- Qorvo 電源技術(shù)站 來了!方案、應(yīng)用一站下載!