- MRT (Multi-Rate Timer)
1. 24 位元中斷定時器
2. 四個可獨立設置的倒數計時器
3. 具三種模式,重複中斷、一次性中斷和一次性總線停頓模式。
2. 四個可獨立設置的倒數計時器
3. 具三種模式,重複中斷、一次性中斷和一次性總線停頓模式。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 506 )
- Repeat interrupt mode
當計時器處於空閒狀態時,向 INTVAL 暫存器寫入一個非零值,透過對 IVALUE - 1,計時器開始倒計時。 當計時器到零時,產生一個中斷,INTVAL 暫存器IVALUE 中的值被自動重新加載,定時器再次開始倒計時。
- One-shot interrupt mode
當計時器處於空閒狀態時,向 INTVAL 暫存器寫入一個非零值,透過對 IVALUE - 1,計時器開始倒計時。 當計時器到零時,產生一個中斷,定時器停止,進入空閒狀態。
- One-shot stall mode
當兩個軟體控制的事件之間需要短暫的延遲時,可以使用總線停頓模式。 由於在此模式下,CPU 內核停止,在此期間消耗最少的功率,直到 MRT 計數器達到零。
- MRT 暫存器
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 508 )
1. INTVAL : 設定 MRT 倒數時間間隔值
2. TIMER : 可讀取倒數器的值
3. CTRL : MRT 的中斷控制和模式選擇
4. STAT : MRT 的狀態暫存器
- MRT 為 100 ms 後 toggle LED 燈輸出狀態程式範例
1. 先執行 MRT 模塊的初始化。設定 System control,透過 AHBCLKCTRL 啟動 MRT 模塊的 clock,並透過 PRESETCTRL 將其模塊重置
2. 設定 MRT CHANNEL 中 24 bits 的倒數時間間隔值,因 system clock is 96 MHz,欲產生 100 ms 計數,其計數量應為 9.6 M 次,並設置中斷及為重複模式
3. 中斷設置,先清除中斷狀態值,再由 NVIC 開啟 MRT 中斷功能
4. 設立中斷函式,當 MRT 計數歸 0 時進入中斷,進入中斷後切換 LED 燈輸出狀態,再清除中斷旗標並結束中斷函示
5. LED 燈 100 ms toggle 示波器波形圖
* 註一 : 圖片來源 NXP LPC55S0x/LPC550x User manual ( UM11424.pdf )
2. 設定 MRT CHANNEL 中 24 bits 的倒數時間間隔值,因 system clock is 96 MHz,欲產生 100 ms 計數,其計數量應為 9.6 M 次,並設置中斷及為重複模式
3. 中斷設置,先清除中斷狀態值,再由 NVIC 開啟 MRT 中斷功能
4. 設立中斷函式,當 MRT 計數歸 0 時進入中斷,進入中斷後切換 LED 燈輸出狀態,再清除中斷旗標並結束中斷函示
5. LED 燈 100 ms toggle 示波器波形圖
* 註一 : 圖片來源 NXP LPC55S0x/LPC550x User manual ( UM11424.pdf )
評論