[問題] 關於中斷的問題

看板ASM (組合語言)作者 (大鈞)時間17年前 (2007/11/14 17:03), 編輯推噓3(3011)
留言14則, 2人參與, 最新討論串1/1
就是我現在做外部中斷的程式 我現在了解到當我中斷副程式結束的時候~ 他會跳回我做中斷前主程式做到某一行再繼續執行主程式 可是有沒有辦法當我把中斷副程式執行完之前... 可以先靜止外部中斷...然後再跳回主程式的開頭 等我主程式做到某個地方在開始中斷 舉個例子; 1.(當我接受串列阜的資料,然後做判斷處理) 2.-->等到判斷完以後才允許外部中斷 3.---->當高電位轉低電位的時候(負緣觸發)跳到中斷副程式 4.---->然後再中斷副程式中,做完某個動作以後,先禁止外部中斷,然後跳回1 等待下一筆串列資料進來以後作判斷再允許外部中斷..... 因為我現在要的是,當我點某鍵才傳串列資料~傳完把資料整理好再做外部中斷 可是我實際這樣做似乎沒辦法動作.... 請問在中斷副程式中可以用ajmp指令嗎? 如果不行的話要怎麼做才能讓我有做完判斷就允許中斷的動作的寫法呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.77.235

11/14 21:55, , 1F
雖然這樣的做法和中斷的原意不太相同,不過是可以做的
11/14 21:55, 1F

11/14 21:56, , 2F
只要不把EX0=1,那麼外部中斷是不會發生的,當你需要外部
11/14 21:56, 2F

11/14 21:56, , 3F
中斷時,再把EX0=1後,即可。中斷程式中可以用ajmp
11/14 21:56, 3F

11/14 21:57, , 4F
但要記得最後要用reti返回即可。另外,中斷程式中最好不要
11/14 21:57, 4F

11/14 21:58, , 5F
有呼叫函式的寫法
11/14 21:58, 5F

11/15 12:08, , 6F
現在的問題是ㄚ...我ㄧ加上串列傳輸副程式就沒外部中斷了
11/15 12:08, 6F

11/15 12:09, , 7F
目前是找到因為我把收的五個BYTE資料放在R0~R4中
11/15 12:09, 7F

11/15 12:09, , 8F
但系統重置後的R2位址跟外部中斷的位址衝到(03H)
11/15 12:09, 8F

11/15 12:10, , 9F
我已經把RO~R7改成其他位址了
11/15 12:10, 9F

11/15 12:11, , 10F
但是外部中斷還是沒發生
11/15 12:11, 10F

11/15 12:13, , 11F
大大上面說的方法我TRY過...雖然大致可以~不過跳到中斷
11/15 12:13, 11F

11/15 12:13, , 12F
以後副程式的處理有問題...晚點我貼CODE請大大幫我DEBUG
11/15 12:13, 12F

11/15 12:14, , 13F
在此感激大大幫忙
11/15 12:14, 13F

11/15 18:22, , 14F
這個部份已經解決了.雖然不是用大大的方法,謝謝大大
11/15 18:22, 14F
文章代碼(AID): #17EhdIlg (ASM)
文章代碼(AID): #17EhdIlg (ASM)