本帖最后由 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的函数
|