輸入捕捉,用它的情況太多太多,因為它和時間相關,所以比用鍵盤中斷之類硬件觸發中斷比較起來,優勢相當明顯.不需要計時器輔助便可算出前一次觸發和后一次觸發的時間.為什么呢?因為輸入捕捉本身就是ECT模塊. 輸入捕捉是一個16位二進制秒表,它可以設置成當某個用戶指定的事件發生時捕捉自由運行計數器的當前計數.用戶指定的事件可以是上升沿、下降沿或任意。由于自由運行計數器用于所有8個IC/OC通道,通常不對它進行復位(即TCNT=0),而是采用兩個事件之間耗用的時間來決定輸入信號參數。輸入捕捉系統可用于測量單
脈沖信號的長度,或是確定周期信號的特征,如周期、占空比、頻率。
相關的計算見前幾個專題。
TCTL3 TCTL4中的EDGnA EDGnB位向邊沿檢測邏輯指定需要的信號沿的特征。當用戶指定事件在設置好的輸入捕捉引腳上發生時,響應事件將如下執行:
1 自由運行計數器(TCNT)中當前值保存在定時器通道寄存器(TCnH/L)中并鎖定,其中n表示8個通道中的一個。要從寄存器中讀取16位值,必須使用16位無符號整型變量
2 設置相關的通道標志(CnF),該標志可以通過向其寫入邏輯1來復位
3 若相應的通道中斷使能(CnI)被置位,那么這個通道將產生個個中斷事件。
評論