UPD78F0411 16 位定時器/事件計數器00 的操作(1) 1.1 間隔定時器操作 如果16 位定時器模式控制寄存器(TMC00) 的第3 位和第2 位(TMC003 和TMC002) 為11 (清零&啟動模式(在TM00 與CR000 相等時進入)),則啟動計數操作與計數時鐘同步。 當之后的TM00 值與CR000 值相等時,將TM00 清零(0000H) 并產生一個相等中斷信號(INTTM000)。這個INTTM000 信號允許TM00 作為間隔定時器操作。 (e) 16 位定時器計數器00 (TM00) 通過讀取TM00,獲得計數值。 (f) 16 位捕捉/比較寄存器000 (CR000) 如果CR000=M,則間隔時間表示如下。 間隔時間= (M + 1) 計數時鐘周期 禁止將CR000 設置為0000H。 (g) 16 位捕捉/比較寄存器010 (CR010) 通常CR010 不用作間隔定時器。但當CR010 的值與TM00 的值相等時,會產生比較相等中斷(INTTM010)。 因此通過使用中斷屏蔽標志(TMMK010)屏蔽中斷請求。 1.2 方波輸出操作 當16 位定時器/事件計數器00 用作間隔定時器時,通過將16 位定時器輸出控制寄存器00 (TOC00) 設置為03H,可以從TO00 引腳輸出一個方波。 當TMC003 與TMC002 被設置為11 時(計數清零&啟動模式(在TM00 與CR000 相等時進入)),啟動計數操作與計數時鐘同步。 當之后TM00 的值與CR000 的值相等時,將TM00 清零(0000H)、產生中斷信號(INTTM000)并反轉TO00 引腳的輸出。反轉的TO00 引腳輸出以恒定的間隔允許TO00 輸出一個方波。 (e) 16 位定時器計數器00 (TM00) 通過讀取TM00,獲得計數值。 (f) 16 位捕捉/比較寄存器000 (CR000) 如果CR000=M,則間隔時間表示如下。 方波頻率= 1 / [2 (M + 1) 計數時鐘周期 禁止將CR000 設置為0000H。 (g) 16 位捕捉/比較寄存器010 (CR010) 通常CR010 不用作方波輸出。但當CR010 的值與TM00 的值相等時,會產生比較相等中斷(INTTM010)。 因此,通過使用中斷屏蔽標志(TMMK010)屏蔽中斷請求。 注 設置TOC00 時必須特別小心。 1.3 外部事件計數器操作 當預分頻器模式寄存器00 (PRM00)的第1 位和第0 位(PRM001 和PRM000)被設置為11(使用TI000 引腳的有效沿計數)以及16 位定時器模式控制寄存器00 (TMC00)的第3 位和第2 位(TMC003 和TMC002)被設置為11 時,開始對外部事件輸入的有效沿進行計數,并產生用于指示TM00 和CR000 之間相等的相等中斷信號(INTTM000)。 如果要輸入外部事件,可以使用TI000 引腳。因此定時器/事件計數器不能用作清零&啟動模式(通過TI000 引腳有效沿(當TMC003 與TMC002 = 10 時)進入)下的外部事件計數器。 INTTM000 信號按下列時序產生。 INTTM000 信號產生時序(第2 次或之后產生)= 外部事件輸入的有效沿檢測次數(CR000 的設置值+ 1) 但在定時器/事件計數器開始操作后,將按以下時序立即產生第1 次相等中斷。 INTTM000 信號產生時序(僅在第1 次產生)=外部事件輸入的有效沿檢測次數(CR000 的設置值+ 2) 如果要檢測有效沿,則應在fPRS 時鐘周期內對輸入到TI000 引腳的信號進行采樣。在一個周期內檢測到兩次脈沖沿時才認為檢測到有效沿,這樣可以消除一個窄脈沖寬度的噪音。 當16 位定時器/事件計數器00 用作間隔定時器時(參見6.4.1),通過將16 位定時器輸出控制寄存器00 (TOC00) 設 置為03H,可以從TO00 引腳輸出一個方波。 當TMC003 與TMC002 被設置為11 時(計數清零&啟動模式(在TM00 與CR000 相等時進入)),啟動計數操作與計數 時鐘同步。 當之后TM00 的值與CR000 的值相等時,將TM00 清零(0000H)、產生中斷信號(INTTM000)并反轉TO00 引腳的輸 出。反轉的TO00 引腳輸出以恒定的間隔允許TO00 輸出一個方波。 (e) 16 位定時器計數器00 (TM00) 通過讀取TM00,獲得計數值。 (f) 16 位捕捉/比較寄存器000 (CR000) 如果CR000=M,當外部事件達到(M+1)時產生中斷信號(INTTM000)。 禁止將CR000 設置為0000H。 (g) 16 位捕捉/比較寄存器010 (CR010) 通常CR010 不用作外部事件計數器模式。但當CR010 的值與TM00 的值相等時,會產生比較相等中斷(INTTM010)。因此,通過使用中斷屏蔽標志(TMMK010)屏蔽中斷請求。 注 設置TOC00 時必須特別小心。 1.4 通過TI000 引腳有效沿輸入進入的清零&啟動模式下的操作 當16 位定時器模式控制寄存器00 (TMC00)的第3 位和第2 位(TMC003 和TMC002)被設置為10(清零&啟動模式(通過TI000 引腳有效沿輸入進入))并且向定時器/事件計數器提供計數時鐘(由PRM00 設置)時,TM00 開始計數。在計數操作期間,如果檢測到TI000 引腳的有效沿,則將TM00 清零(0000H)并再次開始計數。如果沒有檢測到TI000 引腳的有效沿,則TM00 溢出并繼續計數。 可通過TI000 引腳的有效沿對TM00 清零。在操作開始后,不會立即啟動計數器。 CR000 與CR010 可用作比較寄存器和捕捉寄存器。 (a) CR000 與CR010 用作比較寄存器 當TM00 的值與CR000、CR010 的值相等時,產生信號INTTM000 與INTTM010。 (b) CR000 與CR010 用作捕捉寄存器 當有效沿輸入到TI010 引腳時(或者當反向的有效脈沖沿輸入到TI000 引腳時),TM00 的計數值被捕捉到CR000,同時產生INTTM000 信號。 當有效沿輸入到TI000 引腳時,TM00 的計數值被捕捉到CR010,同時產生INTTM010 信號。一旦捕捉了計數值,計數器即被清零(0000H)。 注意事項 不要將TI000 引腳的有效沿(PRM002, PRM001, 和PRM000= 110)設置為計數時鐘。當PRM002,PRM001, 和PRM000= 110 時,將TM00 清零。 (1) 清零&啟動模式(通過TI000 引腳有效沿輸入進入)下的操作 (CR000: 比較寄存器, CR010: 比較寄存器) (a) 和(b) 根據16 位定時器模式控制寄存器01 (TMC00) 第1 位(TMC001) 的設置不同有如下變化。 (a) 當TM00 與比較寄存器相等時反轉TO00 引腳的輸出電平。 (b) 當TM00 與比較寄存器相等或者檢測到TI000 有效沿時反轉TO00 引腳的輸出電平。 (2) 清零&啟動模式(通過TI000 引腳有效沿輸入進入)下的操作 (CR000: 比較寄存器, CR010: 捕捉寄存器) 這是一個應用示例:當捕捉到計數值并清零時反轉TO00 引腳的輸出電平。 當檢測到TI000 引腳的有效沿時,捕捉到的計數值存入CR010 并將TM00 清零(0000H)。當TM00 的計數值=0001H 時,產生比較相等中斷信號(INTTM000),并反轉TO00 引腳的輸出電平。 這是一個應用示例:當捕捉計數值并清零時,從TO00 引腳輸出CR000 設置的寬度(本例是4 個時鐘)。 當檢測到TI000 引腳的有效沿時,捕捉到的計數值存入CR010、產生捕捉中斷信號(INTTM010)、將TM00 清零(0000H)并反轉TO00 引腳的輸出電平。當TM00 的計數值=0003H 時(已經計數4 個時鐘),產生比較相等中斷信號(INTTM000)并反轉TO00 引腳的輸出電平。 (3) 清零&啟動模式(通過TI000 引腳有效沿輸入進入)的操作 (CR000: 捕捉寄存器, CR010: 比較寄存器) 這是一個應用示例:當捕捉計數值并清零時,反轉TO00 引腳的輸出電平。 在檢測到TI000 引腳的上升沿時將TM00 清零,而在檢測到TI000 引腳的下降沿時,TM00 的計數值被捕捉到CR000。 當捕捉/比較控制寄存器00 (CRC00)的第1 位(CRC001)=1 時,TM00 的計數值被捕捉到CR000(在TI000 引腳輸入信號的反向沿捕捉),但不產生捕捉中斷信號(INTTM000)。然而當檢測到TI010 引腳的有效沿時產生INTTM000信號。如果不使用INTTM000 信號,則將其屏蔽。 這是一個應用示例:當捕捉計數值并清零時,從TO00 引腳輸出CR010 設置的寬度(本例是4 個時鐘)。 在檢測到TI000 引腳的上升沿時將TM00 清零(0000H),而在檢測到TI000 引腳的下降沿時,TM00 的計數值被捕捉到CR000。當TM00 被清零(0000H)后,TO00 引腳的輸出電平被反轉,因為TI00 引腳檢測到上升沿或者TM00 的值與比較寄存器(CR010)的值相等。 當捕捉/比較控制寄存器00 (CRC00)的第1 位(CRC001)=1 時,TM00 的計數值被捕捉到CR000(在TI000 引腳輸入信號的反向沿捕捉),但不產生捕捉中斷信號(INTTM000)。然而當檢測到TI010 引腳的有效沿時產生INTTM000 中斷信號。如果不使用INTTM000 信號,則將其屏蔽。 (4) 清零&啟動模式(通過TI000 引腳有效沿輸入進入)下的操作 (CR000: 捕捉寄存器, CR010: 捕捉寄存器) 這是一個應用示例:當檢測到TI000 引腳的上升沿或下降沿時,捕捉到的計數值存入CR010、將TM00 清零并反轉TO00 引腳的輸出 在檢測到TI010 引腳的脈沖沿時產生中斷信號(INTTM000)。如果不使用INTTM000 信號,則將其屏蔽。 這是一個時序示例:當脈沖沿不輸入到TI000 引腳時,在檢測到TI010 引腳的上升沿或下降沿時,捕捉到的計數值存入CR000 。 這是一個應用示例:對輸入到TI000 引腳的信號脈沖寬度進行測量。 通過設置CRC00,在TI000 引腳下降沿(也可以是上升沿)的反向沿捕捉到的計數值存入CR000,而在TI000 引腳下降沿捕捉到的計數值存入CR010。 可以通過下列表達式計算輸入脈沖的高電平和低電平寬度。 高電平寬度= [CR010 的值] –[CR000 的值] [計數時鐘周期] 低電平寬度= [CR000 的值] [計數時鐘周期] 如果選擇TI000 引腳脈沖的反向沿作為觸發,捕捉計數值并存入CR000,則不會產生INTTM000 信號。在產生INTTM010 信號后立即讀取CR000 和CR010,測量脈沖寬度。 但如果將預分頻器模式寄存器00 (PRM00)的第6 位和第5 位(ES101 和ES100)指示的有效沿輸入TI010 引腳,則不會捕捉計數值,但會產生INTTM000 信號。如果要測量TI000 引腳的脈沖寬度,在不使用INTTM000 信號時將其屏蔽。 (e) 16 位定時器計數器00 (TM00) 通過讀取TM00,獲得計數值。 (f) 16 位捕捉/比較寄存器000 (CR000) 當該寄存器用作比較寄存器并且當其值與TM00 的值相等時,產生中斷信號(INTTM000)。但不對TM00 清零。 如果要將該寄存器用作捕捉寄存器,則應選擇TI000 或TI010 引腳注輸入作為捕捉觸發。當檢測到捕捉觸發的有效沿時,將TM00 的計數值存入CR000。 注 當使用檢測TI010 引腳的有效沿時不能使用定時器輸出(TO00)。 (g) 16 位捕捉/比較寄存器010 (CR010) 當該寄存器用作比較寄存器并且當其值與TM00 的值相等時,產生中斷信號(INTTM010)。但不對TM00 清零。 當該寄存器用作捕捉寄存器,則TI000 引腳輸入作為捕捉觸發。當檢測到捕捉觸發的有效沿時,將TM00 的計數值存入CR010。 注 設置TOC00 時必須特別小心。 文章來源:http://www.originic.hk/Item/Show.asp?m=1&d=1790 |