单通道
void init_pwm(void)
{
PWMCTL_CON01= 1; //联结通道0,1为16位的PWM
PWMPOL_PPOL1= 1; //通道01的极性为高电平有效
PWMPRCLK = 0x55; //A时钟和B时钟的分频系数为32,频率为1MHz
PWMSCLA = 25; //SA时钟频率为20KHz
PWMCLK =0x02; //通道01用SA时钟作为时钟源
PWMPER01 = 20; //通道01的周期为100Hz
PWMDTY01 = 0; //通道01的占空比为0%
PWME_PWME1 = 1;//使能通道01
}
多通道
void Init_Pwm(void)
{
PWMCTL_CON01= 0; //联结通道0,1为8位的PWM
PWMCTL_CON23= 0; //联结通道0,1为8位的PWM
PWMCTL_CON45= 0; //联结通道0,1为8位的PWM
PWMPOL_PPOL0= 1; //通道01的极性为高电平有效
PWMPOL_PPOL1= 1; //通道01的极性为高电平有效
PWMPOL_PPOL2= 1; //通道01的极性为高电平有效
PWMPOL_PPOL3= 1; //通道01的极性为高电平有效
PWMPOL_PPOL4= 1; //通道01的极性为高电平有效
/*
Clock A=16MHz :PWMPRCLK=00
Clock SA = Clock A / (2 * PWMSCLA)
PWMx Period = Channel Clock Period * (2 * PWMPERx)
*/
PWMPRCLK = 0x44; //A时钟和B时钟的分频系数为16,频率为1MHz 00 16MHz
PWMSCLA = 25; //SA时钟频率为20KHz 10080KHz
PWMSCLB = 25; //SB时钟频率为20KHz 10080KHz
PWMCLK_PCLK0 =1; //通道0用SA时钟作为时钟源
PWMCLK_PCLK1 =1; //通道1用SA时钟作为时钟源
PWMCLK_PCLK2 =1; //通道2用SB时钟作为时钟源
PWMCLK_PCLK3 =1; //通道3用SB时钟作为时钟源
PWMCLK_PCLK4 =1; //通道4用SA时钟作为时钟源
PWMPER0 = 200; //通道0的周期为50Hz200 200Hz
PWMPER1 = 200; //通道1的周期为50Hz
PWMPER2 = 200; //通道2的周期为50Hz
PWMPER3 = 200; //通道3的周期为50Hz
PWMPER4 = 200; //通道4的周期为50Hz
PWMDTY0 = 0; //通道2的占空比为0%
PWMDTY1 = 0; //通道2的占空比为0%
PWMDTY2 = 0; //通道2的占空比为0%
PWMDTY3 = 0; //通道2的占空比为0%
PWMDTY4 = 0; //通道2的占空比为0%
PWME_PWME0 = 1;//使能通道0 K-C
PWME_PWME1 = 1;//使能通道1 FAN
PWME_PWME2 = 1;//使能通道2 KP2
PWME_PWME3 = 1;//使能通道3 KP1
PWME_PWME4 = 1;//使能通道4 PTC
}