UPD78F0411 8 位定時器H0、H1 和H2 的操作 1.1 間隔定時器/方波輸出操作 當8 位定時器計數器Hn 與比較寄存器0n(CMP0n)相等時,將產生中斷請求信號(INTTMHn)并對8 位定時器計數器Hn 清零(00H)。 在間隔定時器模式中不使用比較寄存器1n(CMP1n)。即使CMP1n 寄存器已賦值,也不會檢測8 位定時器計數器Hn 與CMP1n 寄存器的相等情況,所以不影響定時器的輸出。 通過將定時器H 模式寄存器n(TMHMDn)的第0 位(TOENn)置1,可以從TOHn 輸出任意頻率的方波(占空比= 50%)。 TMH2 定時器輸出僅用作TM52 外部事件輸入允許信號。注意,不提供外部輸出引腳。 設置 <1> 寄存器設置。 (ii) CMP0n 寄存器設置 如果N 作為比較值,則時間間隔如下: 時間間隔= (N +1)/fCNT <2> 當TMHEn = 1 時,開始計數。 <3> 當8 位定時器計數器Hn 與CMP0n 的值相等時,將產生INTTMHn 信號,并對8 位定時器計數器Hn 清零(00H)。 <4> 隨后,以相同的間隔時間重復產生INTTMHn 信號。若要停止計數操作,則將TMHEn 清零(0)。 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 <1> 通過將TMHEn 位置1,允許計數操作。一旦允許計數,則在不到1 個時鐘周期的時間內啟動計數操作。 <2> 當8 位定時器計數器Hn 與CMP0n 寄存器的值相等時,將該定時器計數器清零并反轉TOHn 的輸出電平。此外在計數時鐘的上升沿輸出INTTMHn 信號。 <3> 在定時器Hn 操作期間將TMHEn 位清零,設置INTTMHn 信號和TOHn 的輸出為默認電平。如果在將TMHEn 位清零(0)前它們已經處于默認電平,則電平保持不變。 備注 1. n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 2. 01H ≤N ≤FEH 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 1.2 PWM 輸出操作 在PWM輸出模式中,可以輸出具有任意占空比和周期的脈沖。 8 位定時器比較寄存器0n(CMP0n)用于控制定時器輸出(TOHn)的周期。禁止在定時器操作期間修改CMP0n寄存器的值。 8 位定時器比較寄存器1n(CMP1n)用于控制定時器輸出(TOHn)的占空比。允許在定時器操作期間修改CMP1n寄存器的值。 PWM輸出模式中的操作如下所示。 當定時器計數啟動后,8 位定時器Hn 和CMP0n 寄存器相等,PWM 輸出(TOHn 輸出)活動電平并將8 位定時器Hn清零。當8 位定時器Hn 和CMP01 寄存器相等,PWM 輸出(TOHn 輸出) 活動電平。 TMH2 (PWM 輸出) 定時器輸出僅用作TM52 的外部事件輸入允許信號。注意,沒有外部輸出引腳。 設置 <1> 寄存器設置。 (ii) 設置寄存器CMP0n 比較值(N): 周期設置 (iii) 設置寄存器CMP1n 比較值(M): 占空比設置 備注 1. n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 2. 00H CMP1n (M) < CMP0n (N) FFH <2> 當TMHEn = 1 時,開始計數。 <3> CMP0n 是在允許計數操作后首次被比較的比較寄存器。當8 位定時器計數器Hn 與CMP0n 寄存器的值相等時,將8 位定時器計數器Hn 清零、產生中斷請求信號(INTTMHn),并且輸出活動電平。同時切換比較寄存器(與8 位定時器比較的寄存器):由CMP0n 改為CMP1n 。 <4> 當8 位定時器計數器Hn 與CMP1n 寄存器相等時,輸出非活動電平,并切換比較寄存器(與8 位定時器比較的寄存器):由CMP1n 改為CMP0n 。此時不對8 位定時器計數器Hn 清零,也不產生INTTMHn 信號。 <5> 重復執行過程<3> 和<4>,可以獲取具有任意占空比的脈沖。 <6> 若要停止計數操作,則設置TMHEn = 0。 若CMP0n 的值為N、CMP1n 的值為M,計數時鐘頻率為fCNT ,則PWM 脈沖的輸出周期和占空比如下所示。 PWM 脈沖輸出周期= (N + 1)/fCNT 占空比= (M + 1)/(N + 1) 注意事項 1. 可以在定時器計數操作時改變CMP1n 的設置值。但從改變CMP1n 寄存器的值到這個值被傳輸給寄存器需要經歷三個操作時鐘(通過TMHMDn 寄存器的CKSn2 到CKSn0 位選擇的時鐘信號) 2. 在定時器計數操作停止后(TMHEn=0),再次啟動定時器操作時(TMHEn=1),必須對CMP1n 進行設置(即使是設置相同的值,也必須重新設置CMP1n 寄存器) 3. CMP1n 寄存器的設置值(M)和CMP0n 寄存器的設置值(N)必須在以下范圍內取。 00H ≤CMP1n (M) < CMP0n (N) ≤FFH 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 圖8-14. PWM 輸出模式下的操作時序 <1> 通過設置TMHEn =1,允許計數操作。通過屏蔽一個計數時鐘,啟動8 位定時器計數器Hn。此時,PWM 輸出活動電平。 <2> 當8 位定時器計數器Hn 與CMP0n 相等時將輸出活動電平。此時,對8 位定時器計數器Hn 清零,并輸出INTTMHn 中斷信號。 <3> 當8 位定時器計數器Hn 與CMP1n 相等時,輸出非活動電平。此時,并不對8 位定時器計數器Hn 清零,也不輸出INTTMHn 中斷信號。 <4> 在定時器Hn 操作期間若將TMHEn 位清零,可以設置INTTMHn 信號為默認值和PWM 輸出非活動電平。 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 <1> 通過設置TMHEn =1 允許計數操作。通過屏蔽1 個計數時鐘,啟動8 位定時器計數器Hn。此時PWM 輸出非活動電平。 <2> 在定時器計數器操作期間可以修改CMP1n 的值。修改操作與計數時鐘不同步。 <3> 當8 位定時器計數器Hn 與CMP0n 的值相等時,將8 位定時器計數器Hn 的值清零、輸出活動電平,并輸出INTTMHn 信號。 <4> 如果CMP1n 的值被修改,則修改后的值被鎖存,且不傳送到寄存器。當8 位定時器計數器Hn 的值與修改前CMP1n 寄存器的值相等時,則將值傳送至CMP1n,這樣CMP1n的值就被修改了(<2>’)。 但從CMP1n 的值被修改到將值傳送至寄存器至少需要3 個計數時鐘。如果在3 個計數時鐘內產生一個相等信號,則不能將修改后的值傳送至寄存器。 <5> 當8 位定時器計數器Hn 的值與修改后的CMP1n 的值相等時,輸出非活動電平。此時不對8 位定時器計數器Hn 清零,也不產生INTTMHn 信號。 <6> 在定時器Hn 操作期間若將TMHEn 位清零,可以設置INTTMHn 信號為默認值和使PWM輸出非活動電平。 備注 n = 0 ~ 2。TOHn 僅用于TOH0 和TOH1 。 文章來源:http://www.originic.hk/Item/Show.asp?m=1&d=1811 |