Microchip C18 內置支持 PWM 脈衝寬度調變函數庫模塊 (pwm.h),衹需要用包括 pwm 頭文件 (
注1: 增強型PWM 函數僅可用於帶有ECCPxCON 寄存器的器
功能 –ClosePWMx / CloseEPWMx(1) (禁止PWM 通道x)
原型:void ClosePWM1( void );
void ClosePWM2( void );
void CloseEPWM1( void );
說明:該函數禁止指定的 PWM 通道。
檔案名:pw1close.c
pw2close.c
ew1close.c
範例:ClosePWM1;
功能 –OpenPWMx / OpenEPWMx(1) (配置PWM 通道 x)
原型:void OpenPWM1( char period );
void OpenPWM2( char period );
void OpenEPWM1( char period );
參數:period
可以是0x00 到0xff 之間的任何值,通過使用下面的公式,這個值可確定PWM 頻率:PWM 週期 =[(period ) + 1] x 4 x TOSC x TMR2預分頻值
說明:該函數配置指定PWM 通道的週期和時基。PWM 只使用Timer2。在PWM 工作之前,除了要配置PWM 通道外,還要用 OpenTimer2(...) 語句配置Timer2 。
檔案名:pw1open.c
pw2open.c
ew1open.c
範例:OpenPWM1(0xff);
功能 –SetDCPWMx / SetDCEPWMx(1) (向PWM 通道 x 寫入一個新的佔空比值)
原型:void SetDCPWM1( unsigned int dutycycle );
void SetDCPWM2( unsigned int dutycycle );
void SetDCEPWM1( unsigned int dutycycle );
參數:dutycycle
dutycycle 的值可以是任何一個10位數。只有dutycycle 的低 10 位寫入到佔空比寄存器。占空比,或者更具體地說是PWM 波形的高電平時間,可以通過下面的公式計算出來:PWM x 佔空比 = (DCx<9:0>) x TOSC 其中, DCx<9:0> 是調用該函數時指定的10 位值。
說明:該函數向指定 PWM 通道的占空比寄存器寫入新的佔空比值。
PWM 波形的最大解析度可以使用下面的公式、通過週期計算出來:
解析度(位) = log(FOSC/Fpwm) / log(2)
檔案名:pw1setdc.c
pw2setdc.c
ew1setdc.c
範例:SetDCPWM1(0);
功能 –SetOutputPWMx / SetOutputEPWMx(1) (設置ECCP x 的PWM 輸出配置位元)
原型:void SetOutputPWM1 (unsigned char outputconfig, unsigned char outputmode);void SetOutputEPWM1 (unsigned char outputconfig, unsigned char outputmode);
參數:outputconfig
outputconfig 的值可以是下列值(在pwm.h 中定義)之一:
SINGLE_OUT | 單端輸出 |
FULL_OUT_FWD | 全橋正向輸出 |
HALF_OUT | 半橋輸出 |
FULL_OUT_REV | 全橋反向輸出 |
outputmode
outputmode 的值可以是下列值(在 pwm.h 中定義)之一:
PWM_MODE_1 | P1A 和 P1C 高電平有效 |
P1B 和P1D 高電平有效 | |
PWM_MODE_2 | P1A 和P1C 高電平有效 |
P1B 和 P1D 低電平有效 | |
PWM_MODE_3 | P1A 和 P1C 低電平有效 |
P1B 和 P1D 高電平有效 | |
PWM_MODE_4 | P1A 和 P1C 低電平有效 |
P1B 和 P1D 低電平有效 |
說明:僅適用於帶擴展型或增強型CCP (ECCP)的器件。
檔案名:pw1setoc.c
ew1setoc.c
範例:SetOutputPWM1 (SINGLE_OUT, PWM_MODE_1);
2011 年 04 月 21 日 天氣報告
氣溫:23.0 度 @ 08:00
相對濕度:百分之84%
天氣:短暫陽光
沒有留言:
張貼留言