中斷程序不過(guò)是中斷條件滿(mǎn)足時(shí)立即調用的一段程序而已。它跟主程序一樣,也是要執行自上而下、自左至右的掃描順序,掃描過(guò)一遍之后就返回到主程序中。
對于它執行的效果,你要引入“掃描周期”的概念。就像PLC的一個(gè)掃描周期不是等內部程序中的計時(shí)器計時(shí)時(shí)間到才往下走的一樣,中斷程序里的計時(shí)、計數的最終結果也不會(huì )算到“中斷程序是否執行完畢”的范疇中來(lái)。事實(shí)上,PLC看到IRET這個(gè)指令,它就認為中斷程序已經(jīng)執行完畢,就要回到主程序了。
關(guān)于中斷程序如何理解,cvlsam有一個(gè)非常通俗易懂的解釋?zhuān)?a href="http://www.aitaobar.cn/read-gktid-88930.html" target="_blank" rel="nofollow" onclick="return checkUrl(this)" id="url_1">http://www.aitaobar.cn/read-gktid-88930.html
引用
通俗的說(shuō),中斷就是中斷你現在正在干的事情讓你干其他的事情。
比如:你正在上家園聊天,你老板讓你去買(mǎi)煙,此時(shí),發(fā)生了一個(gè)中斷,買(mǎi)煙回來(lái)后繼續家園聊天。
中斷的作用就是增強實(shí)時(shí)性而已。
與中斷有關(guān)的就是中斷等級。正如你老板讓你去買(mǎi)煙,突然你老板娘讓你去給她按摩,此時(shí)發(fā)生了兩個(gè)中斷,由于老板娘的中斷等級比老板高,因此你需要首先陪老板娘,然后去買(mǎi)煙,最后再來(lái)家園聊天。
結合樓主的“讓指示燈連續閃爍十次,需用時(shí)十秒”,把引言中紅色標出的中斷事件改一下:
老板娘看午餐時(shí)間快到了,讓你去門(mén)口接外賣(mài)。但外賣(mài)一時(shí)半會(huì )來(lái)不了,你就想了個(gè)辦法,一分鐘出去看一次,其他時(shí)間仍然在家園聊天。這就是定時(shí)中斷。結果你一共出去了10趟,外賣(mài)才過(guò)來(lái)。這樣雖然整個(gè)等外賣(mài)的時(shí)間是十分鐘,但是你絕大部分時(shí)間還是在干聊天這件事,只是每分鐘中斷一次出去看看外賣(mài)來(lái)了沒(méi)有。出去看的這一趟就是一個(gè)中斷的“執行完畢”,最終等來(lái)了外賣(mài)才是邏輯結果的“執行完畢”,不要混淆~