PIC 中斷觀察

今天來觀察一下中斷的工作方式,先到 Debugger | Select Tool | MPLAB SIM 選擇軟體模擬的方式,然後開啟 View | Program Memory,照以下的說明輸入組合語言程式來觀察一下吧



若要在某一個 Address 輸入程式碼,先到該 Address 按滑鼠右鍵,再選擇 Set PC at Cursor 即可

首先在 0008 輸入中斷服務常式的程式碼

BCF INTCON, 0x01
NOP
RETFIE

然後在 0020 輸入主程式的程式碼

BSF INTCON, 0x07
BSF INTCON, 0x06
BSF INTCON, 0x04
NOP
NOP
BSF INTCON, 0x01


View | Watch 加入 INTCON 暫存器,將指標移到 0020 (滑鼠右鍵) 就可以開始單步執行程式了


執行完前五行指令後可以發現 INTCON 已經初始化完成,接下來游標停在 002A 準備模擬中斷觸發了


中斷發生後會跳到中斷服務常式的進入點 0008,同時可以發現 GIEH (INTCON BIT7) 已經被清為 0,防止其它中斷產生造成重覆進入的問題

接著程式會清楚本身的中斷旗標 (INTCON BIT1),然後以 RETFIE 的方式返回主程式繼續執行


返回後可以發現 GIEH 又被打開了,表示又可以開始接受其它的中斷了

留言

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯