CPU 在運行的時候都是以線性的方式在進行,也就是一個指令完成後再進行下一個。
若我們需要知道一個外部硬體的準備狀況,便需要進行"詢問"的動作,也就是看指定pin腳的旗標是否成可用。
但若每次都需要耗費一次指令進行詢問,會導致主程序的效率低下,且根據主函式的數量增加,其運行一次迴圈的時間上的控制將變得困難
因此這時候需要 中斷
中斷(interrupt)是指處理器接收到來自硬體或軟體的訊號,提示發生了某個事件,應該被注意,這種情況就稱為中斷 -wiki
因此在使用上 不管是 I/O 還是計時器或是其他事件,大部分會使用中斷進行控制。
尤其是在計時器上面,在1947當中,Timer能夠參照一個穩定的振盪器進行中斷,也就是...有一個穩定的時序來固定的發送訊號當作計時器的中段訊號。
因此,在使用上 中斷 很常被利用來當作
而由於運行的時序對CPU來說是不穩定的,因此會將運算的成果存入暫存器做後續的資料處理
void SFR_INIT(void) {
//能夠做一些事情在這裡
}
:::warning
:exclamation:注意運行的時候最好不要將過度複雜的指令在中段運行
中斷只會運行1 clock cycle 的指令
:::
:::info
這邊基本上只對中斷做簡單的說明與應用,後續會對其內容與應用做更多說明。 :100:
:::
這邊是我這篇的Hackmd XD 看這邊的話會比較清楚喔
https://hackmd.io/@huyuhua/MCU_Interrupt