AVR的中斷問(wèn)題
任一中斷發(fā)生時(shí)全局中斷使能位I 被清零,從而禁止了所有其他的中斷。用戶軟件可以在中斷程序里置位I 來(lái)實(shí)現(xiàn)中斷嵌套。此時(shí)所有的中斷都可以中斷當(dāng)前的中斷服務(wù)程序。
AVR 退出中斷后總是回到主程序并至少執(zhí)行一條指令才可以去執(zhí)行其他被掛起的中斷。要注意的是,進(jìn)入中斷服務(wù)程序時(shí)狀態(tài)寄存器不會(huì)自動(dòng)保存,中斷返回時(shí)也不會(huì)自動(dòng)恢復(fù)。這些工作必須由用戶通過(guò)軟件來(lái)完成。
使用CLI 指令來(lái)禁止中斷時(shí),中斷禁止立即生效。沒(méi)有中斷可以在執(zhí)行CLI 指令后發(fā)生,即使它是在執(zhí)行CLI 指令的同時(shí)發(fā)生的。
評(píng)論