新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430單片機的中斷

        MSP430單片機的中斷

        作者: 時間:2013-01-10 來源:網絡 收藏

        中斷是微處理器的一大特色,有效地利用中斷可以簡化程序和提高的幾乎每個外圍模塊都能夠產生中斷,為針對事件(即外圍模塊產生的中斷)進行的編程打下基礎。MSP430在沒有事件發生時進入低功耗模式,事件發生時,通過中斷喚醒CPU,事件處理完畢后,CPU再次進入低功耗狀態。由于CPU的運算速度和退出低功耗的速度很快,所以在應用中,CPU大部分時間都處于低功耗狀態。

        MSP430的中斷分為3種:系統復位、不可屏蔽中斷、可屏蔽中斷。

        (1)系統復位的中斷向量為0xFFFE。

        (2)不可屏蔽中斷的中斷向量為0xFFFC。響應不可屏蔽中斷時,硬件自動將OFIE、NMIE、ACCVIE復位。軟件首先判斷中斷源并復位中斷標志,接著執行用戶代碼。退出中斷之前需要置位OFIE、NMIE、ACCVIE,以便能夠再次響應中斷。需要特別注意點:置位OFIE、NMIE、ACCVIE后,必須立即退出中斷相應程序,否則會再次觸發中斷,導致中斷嵌套,從而導致堆棧溢出,致使程序執行結果的無法預料。

        (3)可屏蔽中斷的中斷來源于具有中斷能力的外圍模塊,包括看門狗定時器工作在定時器模式時溢出產生的中斷。每一個中斷都可以被自己的中斷控制位屏蔽,也可以由全局中斷控制位屏蔽。

        多個中斷請求發生時,響應最高優先級中斷。響應中斷時,MSP430會將不可屏蔽中斷控制位SR.GIE復位。因此,一旦響應了中斷,即使有優先級更高的可屏蔽中斷出現,也不會中斷當前正在響應的中斷,去響應另外的中斷。但SR.GIE復位不影響不可屏蔽中斷,所以仍可以接受不可屏蔽中斷的中斷請求。

        中斷響應的過程:(1)如果CPU處于活動狀態,則完成當前指令;(2)若CPU處于低功耗狀態,則退出低功耗狀態;(3)將下一條指令的PC值壓入堆棧;(4)將狀態寄存器SR壓入堆棧;(5)若有多個中斷請求,響應最高優先級中斷;(6)單中斷源的中斷請求標志位自動復位,多中斷源的標志位不變,等待軟件復位;(7)總中斷允許位SR.GIE復位。SR狀態寄存器中的CPUOFF、OSCOFF、SCG1、V、N、Z、C位復位;(8)相應的中斷向量值裝入PC寄存器,程序從此地址開始執行。

        中斷返回的過程:(1)從堆棧中恢復PC值,若響應中斷前CPU處于低功耗模式,則可屏蔽中斷仍然恢復低功耗模式;(2)從堆棧中恢復PC值,若響應中斷前CPU不處于低功耗模式,則從此地址繼續執行程序。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 育儿| 新郑市| 宿松县| 平山县| 武邑县| 尼玛县| 平湖市| 前郭尔| 大丰市| 洞口县| 比如县| 筠连县| 高雄市| 英德市| 扎赉特旗| 确山县| 沁阳市| 孝昌县| 安阳市| 太仓市| 历史| 北海市| 遂溪县| 壶关县| 基隆市| 吉隆县| 萍乡市| 柳河县| 仁布县| 常山县| 镇原县| 柘城县| 安西县| 蚌埠市| 丹棱县| 临泉县| 紫金县| 万州区| 西昌市| 隆德县| 海兴县|