現(xiàn)場保護:主要是把一些會有可能會被中斷內部改變,或者是中斷內部在使用到的數(shù)據(jù)保存起來,比如8051的CY(C標志位),這個CY在8051的很多計算中都要用到,如果在主程序中用到,在中斷中也要用到,那么,如果不保存起來,中斷中改變了CY,等到中斷返回之后,主程序中的計算就會出錯
恢復現(xiàn)場:就是把保存的數(shù)據(jù)恢復
至于執(zhí)行中斷時要關閉中斷,在8051中是沒有必要的,因為8051是軟件堆棧.
除非你中斷設計得非常不合理,比如:定時器2需要1秒時間來完成中斷操作,但你又開啟了定時器1,10mS中斷時間,定時器1的中斷等級設定成比定時器2高,這樣一來,在執(zhí)行定時器2中斷的時候,它就會不斷的被定時器1中斷打斷,整個的定時器2中斷時間可能很長,有時候程序都跑不動
對于其它的一般只有幾層的硬件堆棧單片機來說,就要關閉中斷,不然就會溢出,程序就跑飛了 |