[問題] 8051的中斷問題

看板ASM (組合語言)作者 (拉拉拉)時間13年前 (2011/10/05 13:19), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串1/2 (看更多)
最近寫8051程式有用到兩個中斷 一個是外部串列中斷,一個是計時中斷,串列通訊會傳三個8bit的資料 目前有兩個疑問想請教一下版上的先進 1.串列中斷接收端的程式 { if(TI=1) TI=0; if(RI=1) { S[n]=SBUF; n++; if(n==2) n=0; ok=1; RI=0; } } 在串列中斷副程式中這樣寫會太長嗎? 2.若在串列中斷執行時間裡計時中斷被觸發了,程式執行的順序會是   i:主程式(main)=>串列中斷副程式=>計時中斷副程式=>回到中斷的 串列中斷副程式之中斷位置=>回到中斷的主程式之中斷的位置 or ii:主程式(main)=>串列中斷副程式=>計時中斷副程式=>回到中斷的 主程式之中斷的位置 我自己想像是(i)狀況,但實際執行起來好像是(ii)的情形Orz 所以現在在進入串列中斷時要把計時中斷禁能,但是計時中斷是拿來做PWM 把它禁能怎麼一直有莫名的concern.....Orz 感謝大家耐心看完~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.99.141

10/05 13:43, , 1F
已經觸發UART沒有IRET以前TIMER不會觸發,同一個時間
10/05 13:43, 1F

10/05 13:44, , 2F
TIMER跟UART一起觸發你沒設IP的話會先跑TIMER後才跑UART
10/05 13:44, 2F

10/05 17:59, , 3F
s[n++]
10/05 17:59, 3F

10/05 19:00, , 4F
不管是 S++ 還是[S++] 變成ASM一樣耗時 :P
10/05 19:00, 4F

10/05 19:52, , 5F
中斷結束後一定會回中斷點,然後再重新進下一個中斷
10/05 19:52, 5F
文章代碼(AID): #1EY-Zpsd (ASM)
文章代碼(AID): #1EY-Zpsd (ASM)