看板 ASM 關於我們 聯絡資訊
哇! 真的是太感動了,Wolf大真是個能力強又熱心的人.跪拜Orz 這禮拜我想該來買本組合語言的書來看一下了 不然每次看板上的問題或回覆都有種天書的感覺 囧"a 不過還是很謝謝Wolf大的解答~等我買了書研究一下再回來細細品嘗~~ 另外 : if(SerialISR){ : SerialISR(); : TimerISR(); : }else{ : TimerISR(); : SerialISR(); : } 以上是要寫在時間副程式嗎? 我的理解是下面的結構 void timer(void) interrupt 3 { if(RI) { SerialISR();//在這寫好把SBUF fetch到一個資料陣列裡的指令 TimerISR(); //在這個副程式中執行PWM? } else TimerISR(); RI=0; TI=0; } 最後有位版有回覆說:中斷結束會回到主程式被中斷的位置 那如果"低優先中斷的副程式"被"高優先中斷副程式"給中斷了 在"高優先中斷副程式"結束後,程式會回到"低優先中斷的副程式"繼續執行? 還是直接回到"主程式"被中斷的位置呢? -- 感謝大家~~這裡真是個學習的好地方XD -- ※ 引述《WolfLord (呆呆小狼)》之銘言: : 人腦編譯一下嚕....用這樣的ASM替代C馬應該就不會 : 影響20K以下的PWM了吧?(@12MHZ) : SerISR: ; void SerISR(void) interrupt SERIAL { : jnb RI,Eserisr ;2 if(RI){ : mov A,#S ;1 S[n]=SBUF; : add A,n ;1 : mov R1,A ;1 : mov @R1,SBUF ;2 : inc n ;1 n++; : anl n,#0FEH ;2 if(n>2){n=0;} : setb ok ;1 ok=1; : Eserisr: ; } : anl SCON,#0EFH ;2 RI=0;TI=0; : reti ;2 } : ;================================================================== : ;Recived 15 Cycles Non-recived 5 Cycles : : 2.若在串列中斷執行時間裡計時中斷被觸發了,程式執行的順序會是 : if(SerialISR){ : SerialISR(); : TimerISR(); : }else{ : TimerISR(); : SerialISR(); : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.142.73
WolfLord:那只是用C語法表達CPU會怎麼做而已 :P 10/08 02:51
ruemann:XDD 果然被誤會了 10/08 21:51
ruemann:同時中斷時,先進入高優先中斷,回主程式,立刻進入低優先 10/08 21:52
ruemann:中斷 10/08 21:52
ruemann:mcu不會在中斷中再進行另一個中斷 10/08 21:53
WolfLord:那也不一定,8080、8085、Z80還有PENTIUM家族以及68K家族 10/08 22:01
WolfLord:這些純種CPU(不是MCU)中斷中還能進入NMI,有些甚至還能 10/08 22:02
WolfLord:外部排成中斷優先順序以即可不可以重複進入....不過很可 10/08 22:02
WolfLord:惜,大部分的MCU的硬體都沒那麼聰明..... 10/08 22:03
ksmrt0123:8051有高跟低兩個interrupt priority levels, 10/08 23:35
ksmrt0123:low-level interrupt的ISR進行中可被high-level 10/08 23:35
ksmrt0123:interrupt 中斷 10/08 23:36
Petrucci99:我在書中也是看到ksmart大的描述,所以對於被中斷的中斷 10/09 13:51
Petrucci99:在高優先中斷結束後程式會跳回哪邊開始執行? 10/09 13:52
Petrucci99:不是很了解Orz.... 10/09 13:52
Petrucci99:哈哈,是ksmrt大,拍謝筆誤,囧"a 10/09 13:53
WolfLord:那大概是我的ICE有BUG,反正十多年前發現8051中斷只有一 10/09 14:00
WolfLord:曾後,我就一直只一一層做設計的方法 :P 10/09 14:01
ksmrt0123:會跳回低優先中斷ISR之前被中斷的地方 10/09 23:48
Petrucci99:感謝~我來寫個比較好觀察中斷會回到哪的程式來試驗一下 10/10 22:03