|
本帖最后由 danq 于 2020-12-11 10:39 編輯
void PWM_SETT()
{
PWM5_P15_OUTPUT_ENABLE;//設置IO為PWM輸出
P15_PushPull_Mode;//推挽模式
ClrBits(PWMCON1,PWMMOD_1|PWMMOD_0); //PWM獨立輸出模式
ClrBits(PWMCON1,PWMTYP); //PWM邊沿對齊模式
ClrBits(PWMCON1,PWMDIV_2); //PWM時鐘8分頻
SetBits(PWMCON1,PWMDIV_1|PWMDIV_0);
//設置PWM頻率
//在邊沿對齊模式中,PWM頻率=Fpwm/(PWMP+1) Fpwm=時鐘源/分頻數
PWMPH = 0x07; //這里PWM頻率=16M/8/(0x07cf+1)=1KHz
PWMPL = 0xcf;
//PWM4和PWM5占空比寄存器位于特殊功能寄存器SFR的第1頁中,需要進行頁切換才能訪問到
TA_SetBits(SFRS,SFRPAGE); //切換到SFR頁1
PWM5H = 0x03;//設置占空比
PWM5L = 0xe8;
TA_ClrBits(SFRS,SFRPAGE); //使用完后需要切換回SFR的第0頁,否則無法訪問位于0頁的SFR
ClrBits(PNP,PWMTYP); //PWM端口正常極性輸出,不反轉
LOAD=1; //載入新周期和占空比
PWMRUN=1; //PWM開始運行
}
void main
{
PWM_SETT();
}求一個相對穩定可以調節PWM的函數
|
|