1、Duty Cycle Latch High Byte(DL0H;DL1H)和Duty Cycle Latch Low Byte(DL0L;DL1L)。DL0H:DL0L是針對PWM0所設定的暫存器;DL1H:DL1L是針對PWM1所設定的暫存器,統稱為DLX。Duty Cycle Latch暫存器是唯讀的暫存器。PWM的Period也是由2個暫存器所決定:Period High Byte(PRD0H;PRD1H)和Period Low Byte(PRD0L;PRD1L)。PRD0H:PRD0L是針對PWM0所設定的暫存器;PRD1H:PRD1L是針對PWM1所設定的暫存器,統稱為PRDX。在E
2、T44M210內部有2個與PWM有關的16位元計數器:TMR0和TMR1。TMR0是針對PWM0所設定的計數器;TMR1是針對PWM1所設定的計數器,統稱為TMRX。當PWM啟動之後,System Clock就會送到TMRX開始上數,此時會將PWM輸出接腳設為1,在此同時會分別與DLX與PRDX做比較;當TMRX的值等於DLX的值時,PWM輸出接腳會設為0。當TMRX的值等於PRDX的值時,會將PWM輸出接腳設為1,並且將TMRX清除為0,同時PWM的中斷旗標也會設為1。當TMRX被清除為0的同時,會將DTX的值Latch在DLX內。Note:當要改變Period時必須先將PWM的功能Disa
3、ble。Duty Cycle的計算公式入下所示:Duty Cycle(DTX1)(2FSCO)FSCOSystem ClockPeriod的計算公式入下所示:Period(PRDX2)如圖11-3所示為PWM的功能方塊圖。圖11-3:PWM功能方塊圖11-3、 與PWM相關的暫存器 中斷旗標暫存器(Interrupt Flag Register) INTF (0x11)7654321ADIFRBFIFPWM1IFPWM0IFEINT1FEINT0FTCCOFFRCOF Bit 4 Bit 5 (PWM0IF & PWM1IF): PWM中斷旗標:當TMRX等於PRDX時,中斷條件成立,此位元設
4、為1。以軟體指令清除。 PWM Duty Cycle暫存器(PWM Duty) DT0L (0x21)/DT0H (0x22) & DT1L (0x27)/DT1H (0x28)DT0LDT07DT06DT05DT04DT03DT02DT01DT00DT0HDT0FDT0EDT0DDT0CDT0BDT0ADT09DT08DT1LDT17DT16DT15DT14DT13DT12DT11DT10DT1HDT1FDT1EDT1DDT1CDT1BDT1ADT19DT18DT0H:DT0L是PWM0 輸出的Duty Cycle。DT1H:DT1L是PWM1 輸出的Duty Cycle。 PWM Peri
5、od暫存器(PWM Period) PRD0L (0x23)/PRD0H (0x24) & PRD1L (0x29)/PRD1H (0x2A)PRD0LPRD07PRD06PRD05PRD04PRD03PRD02PRD01PRD00PRD0HPRD0FPRD0EPRD0DPRD0CPRD0BPRD0APRD09PRD08PRD1LPRD17PRD16PRD15PRD14PRD13PRD12PRD11PRD10PRD1HPRD1FPRD1EPRD1DPRD1CPRD1BPRD1APRD19PRD18PRD0H:PRD0L是PWM0 輸出Period。PRD0L是PWM1 輸出Period。 PW
6、M Duty Cycle Latch暫存器(PWM Duty Latch) DL0L (0x25)/DL0H (0x26) & DL1L (0x2B)/DL1H (0x2C)DL0LDL07DL06DL05DL04DL03DL02DL01DL00DL0HDL0FDL0EDL0DDL0CDL0BDL0ADL09DL08DL1LDL17DL16DL15DL14DL13DL12DL11DL10DL1HDL1FDL1EDL1DDL1CDL1BDL1ADL19DL18DL0H:DL0L是PWM0 輸出Duty Cycle Latch暫存器。DL1H:DL1L是PWM1 輸出Duty Cycle Latc
7、h暫存器。 Note:這是唯讀的暫存器 週邊功能致能控制暫存器(Peripherals Enable Control) PRIE (0x80)SPIEUSBEWMEADEPWM1EPWM0ETCCEFRCE此暫存器控制是否啟用週邊功能。當設為0時,表示不啟用該週邊功能,當設為1時,表示啟用該週邊功能。 Bit 2 (PWM0E):脈寬調變0(PWM0) 功能致能位元。 Bit 3 (PWM1E):脈寬調變1(PWM1) 功能致能位元。 中斷功能致能控制暫存器(Interrupts Enable Control) INTE (0x81)1 GIERBFIEPWM1IEPWM0IEEINT1EEI
8、NT0ETCCOEFRCOE此暫存器控制是否啟用中斷功能。當設為0時,表示不啟用中斷功能,當設為1時,表示啟用中斷功能。 Bit 4 (PWM0IE):脈寬調變(PWM0)一個週期完成中斷功能致能位元。 Bit 5 (PWM1IE):脈寬調變(PWM1)一個週期完成中斷功能致能位元。 脈寬調變控制暫存器(PWM Control Register) PWMCR (0x98)-S_PWM1S_PWM0 Bit 2 (S_PWM0):Selected PWM0 output enable此位元是設定PWM0輸出致能位元。當設為0時,表示Disable PWM0輸出,當設為1時,表示Enable PW
9、M0輸出。 Bit 3 (S_PWM1):Selected PWM1 output enable此位元是設定PWM1輸出致能位元。當設為0時,表示Disable PWM1輸出,當設為1時,表示Enable PWM1輸出。 Bit 0, Bit 1 and Bit 4 Bit 7 :保留11-4、 程式範例1. 實習1 - PWM喇叭音效控制實習 動作說明程式使用PWM功能,使喇叭發出聲音。 硬體連接此範例使用ET44M210的實驗電路板。 程式說明此範例使用PWM功能,PWM0:(2FSCO) =(33)(26MHz)=11s。(2FSCO) =(259)(26MHz)=86s。PWM1:(2FSCO) =(1030)(26MHz)=343s。程式一開始先起始PWM設定:清除PWM相關暫存器,設定PWM暫存器的值。主程式只需等待PWM中斷發生。由於實驗電路板的喇叭是連接到PWM1,因此PWM0並不需要Enable。 流程圖 程式碼PWM01.dt中副程式及程式區段說明PWM01.dt 程式共包含了5個副程式及程式區段,依照程式的撰寫順序有: PWM: 、 EXIT: 、 CLR_PWM1_FLAG: 、 INITIAL: 、 PWM_START: 為了方便讀者閱讀瞭解,針對程式中所定義的LAB
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1