·
M128總共提供4個計時計數器給使用者使用,其中計時計數器0、2為8-bit,計時計數器1、3為16-bit,兩者在設定上會有些微差異。計數器除了計數預設的時脈數並於計數滿時產生定時中斷之外,也同時改變其輸接腳的電壓準位以產生輸出波形。利用微控制器的定時中斷可以固定頻率重覆執行同一段程式,實現數位控制及數位訊號處理所需的疊代演算法。
M128計時計數器總共提供了四種計數模式。包括 一般模式NORMAL mode, 比較吻合清除模式 CTC(Clear Timer on Compare Match Mode) ,鋸齒波波寬調變模式(Fast PWM mode),以及 對稱三角波寬調變模式(Phase Corrected PWM mode) 等四種計數模式,每一種模式都有其特定的波形輸出方式。
C4MLib 利用了M128的CTC模式的計時中斷 提供高解析度的週期性中斷TimInt,給一般需要精準計時的場和使用,例如時鐘。
另外C4MLib 也利用了三角波寬調變模式 Phase Corrected PWM mode週期性中斷PwmInt需要更新PWM輸出波形的定期更使用新用。
但本實驗主要使用CTC模式。此模式有一個計時計數暫存器(TCNT)負責記錄目前的計數值,以及一個允許使用者設定的逾次比較暫存器(OCR),當計時計數暫存器值等於逾次比較暫存器值時,則計時計數暫存器會歸零重新下一輪的計數。假設此一計時中斷致能,則會執行它對應的中斷服務常式,若其波形輸出致能,則其接腳會同時輸出方波。
此一方波的週期請參考以下圖1 計時器方波輸出圖,由於每次完成計數會執行一次準位切換Toggle,需要兩次切換,故方波週期是中斷週期的兩倍。而且會觸發兩次CTC中斷。
圖1 計時器方波輸出圖