單片機(jī)中斷響應(yīng)時(shí)間的計(jì)算
中斷響應(yīng)時(shí)間:從外部中斷請(qǐng)求有效(外部中斷請(qǐng)求標(biāo)志置1)到轉(zhuǎn)向中斷入口地址所需要的響應(yīng)時(shí)間。每個(gè)機(jī)器周期的S5P2時(shí)刻,INTx引腳的電平被鎖存到內(nèi)部寄存器中,待下一個(gè)周期查詢。
1.最短時(shí)間:中斷請(qǐng)求有效,查詢后在下一個(gè)周期便開始執(zhí)行一條硬件的子程序的調(diào)用(時(shí)間是兩個(gè)周期),然后開始執(zhí)行服務(wù)程序的第一條指令。這樣從鎖存電平的周期到執(zhí)行中斷服務(wù)程序,中間相隔3個(gè)機(jī)器周期。
2.最長(zhǎng)時(shí)間:如果中斷信號(hào)發(fā)生在前面所說的3種情況時(shí),響應(yīng)時(shí)間就要變長(zhǎng):
(1)響應(yīng)時(shí)間取決于正在執(zhí)行的同級(jí)或高級(jí)中斷的執(zhí)行時(shí)間;
(2)指當(dāng)前CPU執(zhí)行的指令是多周期指令,如乘除法指令(4個(gè)周期),最壞情況,還要等3個(gè)周期。這樣響應(yīng)周期變?yōu)?+3=6個(gè)周期;
(3)CPU當(dāng)前執(zhí)行的指令是RETI或訪問IE、IP寄存器時(shí),本指令(1個(gè)周期)沒有響應(yīng),且下一條指令執(zhí)行完后才能響應(yīng),這樣附加的等待時(shí)間最長(zhǎng)不會(huì)超過5個(gè)周期(1+4)。整個(gè)響應(yīng)為5+3=8個(gè)周期。
這樣,如果不考慮第1種情況,整個(gè)中斷響應(yīng)的時(shí)間范圍應(yīng)當(dāng)是:3~8個(gè)機(jī)器周期。