PIC16F877的Timer2與CCP模塊的PWM
與Timer2有關(guān)的寄存器
PWM模式
一個PWM輸出包含一個時基(周期)和一段輸出高電平的時間(占空比)。PWM的頻率是周期的倒數(shù)(1/周期)。
PWM周期可通過寫入PR2 寄存器來規(guī)定,可用以下公式計算:
PWM 頻率 (FPWM)定義為1/[PWM周期]。
當TMR2 等于PR2 時,在下一遞增計數(shù)周期中將產(chǎn)生下面三個事件:
• TMR2 被清零
• CCPx 引腳被置1( 例外情況:如果PWM占空比 =0%, CCPx 不被置1)
• PWM 占空比從CCPRxL 被鎖定為 CCPRxH
PWM占空比可通過寫入CCPRxL寄存器和DCxB1:DCxB0(CCPxCON<5:4>)位來規(guī)定。最高分辨率可達10位:由CCPRxL 中的高8位和CCPxCON<5:4>中的低2位組成。這一10位值由DCxB9:DCxB0來表征。計算 PWM 占空比的公式如下:
DCxB9:DCxB0的值可以在任何時候?qū)懭?,但直到PR2與TMR2中的值相符(當前周期結(jié)束)時,占空比的值才被鎖存到CCPRxH。在PWM模式下,CCPRxH是只讀寄存器。CCPRxH 寄存器和一個2位的內(nèi)部鎖存器用于為PWM占空比提供雙重緩沖。雙重緩沖對PWM的無毛刺操作是極其重要的。當CCPRxH和2位鎖存器的值與TMR2和內(nèi)部2位Q時鐘(或TMR2分頻器的2位)串接值相符時,CCPx引腳被清零。此時占空比結(jié)束。對于給定的PWM頻率,其最大分辨率(位)為:
計算舉例:
通過以下步驟將CCP模塊配置為PWM模式:
1. 寫入PR2寄存器以設定PWM周期。
2. 寫入DCxB9:DCxB0位以設置PWM占空比。
3. 將相應的TRIS位清零以將CCPx引腳設為輸出。
4. 寫入T2CON以設置TMR2預分頻比并使能 Timer2。
5. 將CCP模塊配置為PWM模式。
評論