中斷和定時器

2021-06-16 03:32:00 字數 371 閱讀 5882

定時器和中斷是兩個不同的概念。

定時器相當於乙個表,一直不停的在走,如果你不去調整的話,就是過了12點又是1點,周而復始。

而中斷相當於你在工作,突然別個叫你去看窗外有好看的東西,於是你放下工作,馬上跑去看,看完後回來繼續工作。

而定時器溢位中斷,假定,你燒了水,需要每隔10分鐘去看看是否燒開了,而你自己有個帶鬧鐘的表,你就可以再開始的時候,手動調節時間為12點,鬧鐘響的時間是12.10分(初始化),然後你繼續自己的工作,12.10的時候,鬧鐘響了(定時器溢位中斷),你放下手裡的工作(中斷服務程式),並將鬧鐘的時間重新調回12點(裝入定時器初值),然後去看水開沒,結果還沒開,就回來繼續工作(中斷返回),繼續等候下次鬧鈴響。。。

估計應該說的比較清楚了吧?

定時器中斷

系統初始化的時候在預設的系統初始化函式 systeminit 函式裡面已經初始化 apb1 的時鐘為 2 分頻,所以 apb1 的時鐘為 36m。當 apb1 的時鐘分頻數為 1 的時候,tim2 7 的時鐘為 apb1 的時鐘,而如果 apb1 的時鐘分頻數不為 1,那麼 tim2 7 的時鐘頻率...

定時器中斷

tmod 0x01 th0 65536 50000 256 tl0 65536 50000 6 ea 1 et0 1 tr0 1 void timer0 interrupt 1 ea 1 開總中斷允許 et0 1 開定時器0允許 tmod 0x01 定時器選擇軟體啟動,工作方式為1 th0 6553...

定時器 中斷

1 實現電視劇集中的10s定時炸彈功能 炸彈炸了用蜂鳴器模擬 include unsigned char code smgduan 17 unsigned int ms,sec 10,s sbit p1 0 p1 0 void delay unsigned int n void isr timer0...