【正文】
期的脈沖,它在計(jì)數(shù)器剛好到達(dá) 0x00000000狀態(tài)時(shí)生效,在緊接著的下一個(gè)周期失效。通過(guò)將 GPTMCTL中的 TAOTE 位置位可將輸出觸發(fā)使能,并且可以觸發(fā)啟動(dòng)轉(zhuǎn)換( SoC)事件,如ADC轉(zhuǎn)換。如果軟件在計(jì)數(shù)器運(yùn)行過(guò)程中重裝 GPTMTAILR寄存器,則計(jì)數(shù)器在下一個(gè)時(shí)鐘周期裝載新值并從新值繼續(xù)計(jì)數(shù)。如果 GPTMCTL寄存器的 TASTALL 位有效 ,則定時(shí)器停止( freeze)計(jì)數(shù)直到該信號(hào)失效。 32位實(shí)時(shí)時(shí)鐘定時(shí)器模式 在實(shí)時(shí)時(shí)鐘( RTC)模式中, TimerA和 TimerB寄存器連在一起被配置為 32位遞增計(jì)數(shù)器。在首次選擇 RTC 模式時(shí),計(jì)數(shù)器裝載的值為 。后面裝載的值全都必須通過(guò)控制器寫入 GPTMTimerA 匹配 (GPTMTAMATCHR) 寄存器。 在 RTC模式中,要求 CCP0, CCP2或 CCP4管腳上的輸入時(shí)鐘為 。然后將時(shí)鐘信號(hào)分頻為 1Hz,將其傳送給 32位計(jì)數(shù)器的輸入端。 在軟件寫 GPTMCTL中的 TAEN位時(shí),計(jì)數(shù)器從其預(yù)裝載的值 始遞增計(jì)數(shù)。在當(dāng)前計(jì)數(shù)值與 GPTMTAMATCHR 中的預(yù)裝載值匹配時(shí),計(jì)數(shù)器返回到 ,直到出現(xiàn)硬件復(fù)位或被軟件禁能( TAEN位清零),計(jì)數(shù)停止。當(dāng)計(jì)數(shù)值與預(yù)裝載值匹配時(shí), GPTM讓 GPTMRIS中的 RTCRIS位有效。如果 GPTIMR 中的 RTC 中斷使能,那么 GPTM 也會(huì)將 GPTMISR 中的 RTCMIS位置位并產(chǎn)生一個(gè)控制器中斷。 通過(guò)寫 GPTMICR的 RTCCINT位可將狀態(tài)標(biāo)志清零。如果 GPTMCTL 寄存器中 的 TASTALL 位和 /或 TBSTALL 位置位,那么定時(shí)器在 GPTMCTL的 RTCEN位置位時(shí)不會(huì)停止計(jì)數(shù)。 16位定時(shí)器的工作模式 通過(guò)向 GPTM配置 (GPTMCFG) 寄存器寫入 0x04,可將 GPTM配置為全局 16位模式。本小節(jié)將描述每一個(gè) GPTM 的 16位操作模式。 TimerA 和 TimerB 的模式 相同,因此我們只介紹一次,并用字母 n來(lái)表示這兩個(gè)定時(shí)器的寄存器。 16位單次觸發(fā) /周期定時(shí)器模式 在 16 位單次觸發(fā) /周期定時(shí)器模式中,定時(shí)器被配置為帶可選的 8 位預(yù)分頻器的 16位遞減計(jì)數(shù)器,預(yù)分頻器可 有效地將定時(shí)器的計(jì)數(shù)范圍擴(kuò)大到 24位。選擇單次觸發(fā)模式還是周期模式由寫入 GPTMTnMR寄存器中 TnMR位域的值來(lái)決定。可選預(yù)分頻器中的值被加載到 GPTM Timern 預(yù)分頻 (GPTMTnPR)寄存器中。 在軟件對(duì) GPTMCTL寄存器的 TnEN位執(zhí)行寫操作時(shí),定時(shí)器從其預(yù)裝載的值開始遞減計(jì)數(shù)。一旦到達(dá) 0x0000狀態(tài),定時(shí)器便在下一個(gè)周期到來(lái)時(shí)將 GPTMTnILR和 GPTMTnPR 的值重新載入。如果配置為單次觸發(fā)模式,則定時(shí)器停止計(jì)數(shù)并將GPTMCTL寄存器的 TnEN 位清零。如果配置為周期定時(shí)器,它將 繼續(xù)計(jì)數(shù)。在到達(dá) 0x0000狀態(tài)時(shí),定時(shí)器除了重裝計(jì)數(shù)值,還產(chǎn)生中斷并輸出觸發(fā)信號(hào)。 GPTM將GPTMRIS寄存器的 TnTORIS位置位,并保持該值直到執(zhí)行 GPTMICR寄存器寫操作將該位清零。如果 GPTIMR 的超時(shí)中斷使能,則 GPTM 還將 GPTMISR 寄存器的 TnTOMIS 位置位并產(chǎn)生控制器中斷。輸出觸發(fā)信號(hào)是一個(gè)單時(shí)鐘周期的脈沖,在計(jì)數(shù)器剛好到達(dá) 0x0000 狀態(tài)時(shí)生效,并在緊接著的下一個(gè)周期失效。它通過(guò)對(duì)GPTMCTL寄存器中的 TnOTE位置位來(lái)使能,并且可以觸發(fā)啟動(dòng)轉(zhuǎn)換( SoC)事件如 ADC 轉(zhuǎn)換。如 果軟件在計(jì)數(shù)器運(yùn)行過(guò)程中重裝 GPTMTAILR 寄存器,則計(jì)數(shù)器在下一個(gè)時(shí)鐘周期裝載新值并從新值繼續(xù)計(jì)數(shù)。如果 GPTMCTL 寄存器中的 TnSTALL 位被使能,那么定時(shí)器停止( freeze)計(jì)數(shù),直到該信號(hào)失效后再繼續(xù)計(jì)數(shù)。 16位輸入邊沿計(jì)數(shù)模式 在邊沿計(jì)數(shù)模式中,定時(shí)器被配置為能夠捕獲 3種事件類型的遞減計(jì)數(shù)器,這3種事件類型為上升沿、下降沿、或上升 /下降沿。為了把定時(shí)器設(shè)置為邊沿計(jì)數(shù)模式, GPTMTnMR 寄存器的 TnCMR 位必須設(shè)為 0。定時(shí)器計(jì)數(shù)時(shí)所采用的邊沿類型由 GPTMCTL寄存器的 TnEVENT位域決定。在初始化過(guò)程中,需對(duì) GPTM Timern 匹配 (GPTMTnMATCHR) 寄存器進(jìn)行配置,以便 GPTMTnILR 寄存器和GPTMTnMATCHR寄存器之間的差值等于必須計(jì)算的邊沿事件的數(shù)目。 當(dāng)軟件寫 GPTM 控制 (GPTMCTL)寄存器的 TnEN 位時(shí),定時(shí)器使能并用于事件捕獲。 CCP 管腳上每輸入一個(gè)事件,計(jì)數(shù)器的值就減 1,直到事件計(jì)數(shù)的值與GPTMTnMATCHR的值匹配。這時(shí), GPTM讓 GPTMRIS寄存器的 CnMRIS位有效(如果中斷沒(méi)有屏蔽,則也要讓 CnMMIS 位有效)。然后計(jì)數(shù)器使用 GPTMTnILR中的值執(zhí)行重裝操作,并且由于 GPTM自動(dòng)將 GPTMCTL寄存器的 TnEN位清零,因此計(jì)數(shù) 器停止計(jì)數(shù)。一旦事件計(jì)數(shù)值滿足要求,接下來(lái)的所有事件都將被忽略 , 直 到通過(guò)軟件重新將 TnEN使能。 在邊沿定時(shí)模式中,定時(shí)器被配置為自由運(yùn)行的遞減計(jì)數(shù)器,其初始值從GPTMTnILR 寄存器中加載(復(fù)位時(shí)初始化為 0xFFFF)。該模式允許在上升沿或下降沿捕獲事件。通過(guò)置位 GPTMTnMR 寄存器的 TnCMR 位可將定時(shí)器置于邊沿定時(shí)模式,而定時(shí)器捕獲時(shí)采用的事件類型由 GPTMCnTL 寄存器的 TnEVENT 位域來(lái)決定。 在軟件寫 GPTMCTL寄存器的 TnEN 位時(shí),定時(shí)器使能并用于事件捕獲。在檢測(cè)到所選的輸入事件時(shí),從 GPTMTnR 寄存器中捕獲 Tn 計(jì)數(shù)器的當(dāng)前值,且該值可通過(guò)控制器來(lái)讀取。 然后 GPTM 讓 CnERIS 位有效(如果中斷沒(méi)有被屏蔽,則也讓 CnEMIS位有效)。在捕獲到事件之后,定時(shí)器不會(huì)停止計(jì)數(shù)。它會(huì)繼續(xù)計(jì)數(shù),直至 TnEN 位清零。當(dāng)定時(shí)器到達(dá) 0x0000 狀態(tài)時(shí),將 GPTMnILR 寄存器中的值重新載入定時(shí)器。定時(shí)器配置為捕獲上升沿事件。每當(dāng)檢測(cè)到上升沿事件時(shí),當(dāng)前計(jì)數(shù)值便裝載到 GPTMTnR寄存器 中,且該值一直保持在寄存器中直到檢測(cè)到下一個(gè)上升沿(在此上升沿處,新的計(jì)數(shù)值裝載到 GPTMTnR中)。 16位 PWM模式 GPTM 支持簡(jiǎn)單的 PWM 生成模式。在 PWM 模式中,定時(shí)器配置為遞減計(jì)數(shù)器,初值由 GPTMTnILR定義。通過(guò)將 GPTMTnMR寄存器的 TnAMS位置為 0xTnCMR位置為 0x0、 TnMR位域置為 0x2來(lái)使能 PWM模式。在軟件寫 GPTMCTL寄存器的 TnEN 位時(shí),計(jì)數(shù)器開始遞減計(jì)數(shù),直到計(jì)數(shù)值到達(dá) 0x0000。在下一個(gè)計(jì)數(shù)周期,計(jì)數(shù)器將 GPTMTnILR寄存器中的值重新載入,作為 它的初值(如果使用了預(yù)分頻器,則還要重新裝載 GPTMTnPR中的值),并繼續(xù)計(jì)數(shù)直到計(jì)數(shù)器因軟件將 GPTMCTL寄存器的 TnEN位清零而被禁止。在 PWM模式中,不產(chǎn)生中斷或狀態(tài)位。 當(dāng)計(jì)數(shù)器的值與 GPTMTnILR 寄存器的值(計(jì)數(shù)器的初始狀態(tài))相等時(shí),輸出PWM 信號(hào)生效,當(dāng)計(jì)數(shù)器的值與 GPTM Timern 匹配 寄存器 (GPTMnMATCHR)的值相等時(shí),輸出 PWM信號(hào)失效。通過(guò)將 GPTMCTL寄存器的 TnPWML位置位,軟件可實(shí)現(xiàn)將輸出 PWM信號(hào)反相的功能。 Pulse Width Modulator (PWM) GeneralPurpose Timers Pulse width modulation (PWM) is a powerful technique for digitally encoding analog signal counters are used to generate a square wave, and the duty cycle of the squarewave is modulated to encode an analog signal. Typical applications include switching power suppliesand motor control. The Stellaris174。 PWM module consists of three PWM generator blocks and a control block. The controlblock determines the polarity of the PWM signals, and which signals are passed through to the pins. Each PWM generator block produces two PWM signals that can either be independent signals(other than being based on the same timer and therefore having the same frequency) or a singlepair of plementary signals with deadband delays inserted. The output of the PWM generationblocks are managed by the output control block before being passed to the device pins. The Stellaris174。 PWM module provides a great deal of flexibility. It can generate simple PWM signals,such as those required by a simple charge pump. It can also generate paired PWM signals withdeadband delays, such as those required by a halfH bridge driver. Three generator blocks canalso generate the full six channels of gate controls required by a 3phase inverter bridge. PWM Timer The timer in each PWM generator runs in one of two modes: CountDown mode or CountUp/Downmode. In CountDown mode, the timer counts from the load value to zero, goes back to the loadvalue, and continues counting down. In CountUp/Down mode, the timer counts from zero up to the load value, back down to zero, back up to the load value, and so on. Generally, CountDown mode is used for generating left or rightaligned PWM signals, while the CountUp/Down mode is usedfor generating centeraligned PWM signals. The timers output three signals that are used in the PWM generation process: the direction signal(this is always Low in CountDown mode, but alternates between Low and High in CountUp/Down mode), a singleclockcyclewidth High pulse when the counter is zero, and a singleclockcyclewidth High pulse when the counter is equal to the load value. Note that in CountDown mode, the zeropulse is immediately followed by the load pulse. PWM Comparators There are two parators in each PWM generator that monitor the value of the counter。 when either match the counter, they output a singleclockcyclewidth High pulse. When in CountUp/Down mode, these parators match both when counting up and when counting down。 they are therefore qualified by the counter direction signal. These quali