|
定時/計數(shù)器
HT48R05A-1提供一個定時/計數(shù)器。定時/計數(shù)器包含一個8位可編程的向上計數(shù)的計數(shù)器,時鐘可以來自外部時鐘或系統(tǒng)時鐘。
如果采用內(nèi)部系統(tǒng)時鐘,那么只有一個參考時基信號,這個內(nèi)部時鐘來自fsys。
外部時鐘輸入,允許用戶去計量外部事件,測量時間長度或脈沖寬度或產(chǎn)生一個精確的時基信號。
有兩個寄存器與定時/計數(shù)器相關(guān)聯(lián)即TMR(0DH)和TMRC(0EH)。有兩個物理寄存器對應(yīng)TMR的位置,寫入TMR會將初始值裝入定時/計數(shù)器的預置寄存器中,而讀TMR則會獲得定時/計數(shù)器的內(nèi)容,TMRC是定時/計數(shù)器控制寄存器。
TM0和TM1位定義操作模式,事件計數(shù)模式用來記錄外部事件,這時時鐘來源于外部TMR引腳,定時器模式是作為一個普通的定時器功能,時鐘源來自fINT時鐘。脈沖寬度測量模式能用來計量外部引腳TMR上的高電平或低電平的寬度,計數(shù)是基于fINT時鐘。
HT48R05A-1定時/計數(shù)器
在事件計數(shù)或定時器模式中,一旦定時/計數(shù)器開始計數(shù),它將會從當前定時/計數(shù)器中的數(shù)值開始計數(shù)到FFH,一旦產(chǎn)生溢出,計數(shù)器會從定時/計數(shù)器預置寄存器重新裝載并且同時產(chǎn)生相應(yīng)的中斷請求狀態(tài)位(TF:INTC的第5位)。
在脈沖寬度測量中,將TON和TE置為“1”,如果TMR接收到從低到高的電平跳變(或從高到低的變化,如果TE位被清除),就開始計數(shù)直到TMR返回到 原來的電平并且復位TON位。測量的結(jié)果被保留在定時計數(shù)器中,甚至電平跳變再一次發(fā)生也不會改變,也就是,一次只能測量一個周期。直到TON再次被置 位,只要再接收到跳變信號,那么測量過程會再次執(zhí)行。要注意在這個操作模式中,定時/計數(shù)器的啟動計數(shù)不是根據(jù)邏輯電平,而是信號的邊沿跳變觸發(fā)。一旦發(fā) 生計數(shù)器溢出,計數(shù)器會從定時/計數(shù)器的預置寄存器重新裝入,并激活中斷。這種情況與其它兩個模式一樣,要使得計數(shù)運行,只要將定時器啟動位 (TON:TMRC的第4位)置“1”。在脈沖寬度測量模式中TON在測量周期結(jié)束后自動被清除。但在另外兩個模式中,TON只能由指令來復位。定時/計 數(shù)器的溢出是喚醒信號之一。不管是何種模式,若寫“0”到ETI位即可禁止響應(yīng)的中斷服務(wù)。
在定時/計數(shù)器為OFF狀態(tài)下,寫數(shù)據(jù)到定時/計數(shù)器的預置寄存器中,同時也會將數(shù)據(jù)裝入定時/計數(shù)器中。但若是定時/計數(shù)器已經(jīng)開啟,寫到定時/計數(shù)器 的數(shù)據(jù)被保留在定時/計數(shù)器的預置寄存器中,直到定時/計數(shù)器發(fā)生計數(shù)溢出為止,再由預置寄存器加載新的值。當定時/計數(shù)器的數(shù)據(jù)被讀取時,會禁止時鐘輸 入以防出錯,因為禁止時鐘輸入可能導致計數(shù)錯誤,所以程序員必須加以考慮。
TMRC的0-2位被用于定義定時/計數(shù)器的內(nèi)部時鐘源的前置分頻因子。定義如下表所示,定時/計數(shù)器的溢出信號被用于產(chǎn)生驅(qū)動蜂鳴器的PFD信號。
HT48R05A-1的TMR寄存器
|