作者tea1116 (大鈞)
看板ASM
標題[問題] 關於中斷的問題
時間Wed Nov 14 17:03:11 2007
就是我現在做外部中斷的程式
我現在了解到當我中斷副程式結束的時候~
他會跳回我做中斷前主程式做到某一行再繼續執行主程式
可是有沒有辦法當我把中斷副程式執行完之前...
可以先靜止外部中斷...然後再跳回主程式的開頭
等我主程式做到某個地方在開始中斷
舉個例子;
1.(當我接受串列阜的資料,然後做判斷處理)
2.-->等到判斷完以後才允許外部中斷
3.---->當高電位轉低電位的時候(負緣觸發)跳到中斷副程式
4.---->然後再中斷副程式中,做完某個動作以後,先禁止外部中斷,然後跳回1
等待下一筆串列資料進來以後作判斷再允許外部中斷.....
因為我現在要的是,當我點某鍵才傳串列資料~傳完把資料整理好再做外部中斷
可是我實際這樣做似乎沒辦法動作....
請問在中斷副程式中可以用ajmp指令嗎?
如果不行的話要怎麼做才能讓我有做完判斷就允許中斷的動作的寫法呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.127.77.235
1F:推 ruemann:雖然這樣的做法和中斷的原意不太相同,不過是可以做的 11/14 21:55
2F:→ ruemann:只要不把EX0=1,那麼外部中斷是不會發生的,當你需要外部 11/14 21:56
3F:→ ruemann:中斷時,再把EX0=1後,即可。中斷程式中可以用ajmp 11/14 21:56
4F:→ ruemann:但要記得最後要用reti返回即可。另外,中斷程式中最好不要 11/14 21:57
5F:→ ruemann:有呼叫函式的寫法 11/14 21:58
6F:推 tea1116:現在的問題是ㄚ...我ㄧ加上串列傳輸副程式就沒外部中斷了 11/15 12:08
7F:→ tea1116:目前是找到因為我把收的五個BYTE資料放在R0~R4中 11/15 12:09
8F:→ tea1116:但系統重置後的R2位址跟外部中斷的位址衝到(03H) 11/15 12:09
9F:→ tea1116:我已經把RO~R7改成其他位址了 11/15 12:10
10F:→ tea1116:但是外部中斷還是沒發生 11/15 12:11
11F:推 tea1116:大大上面說的方法我TRY過...雖然大致可以~不過跳到中斷 11/15 12:13
12F:→ tea1116:以後副程式的處理有問題...晚點我貼CODE請大大幫我DEBUG 11/15 12:13
13F:→ tea1116:在此感激大大幫忙 11/15 12:14
14F:→ tea1116:這個部份已經解決了.雖然不是用大大的方法,謝謝大大 11/15 18:22