1、PWM很简单,貌似要注意的就是0、1、4、5路PWM由时钟源A或SA产生,2、3、6、7由B或SB产生。
2、还有就是,设置PWM的寄存器时,要先关闭PWM使能PWME,设置完了再开启。
3、舵机最好还是级联一下。
//-------------- 电机 PWM 输出 50kHz -----------------
void PWM_Init(void)
{
PWMPRCLK = 0x22; // 0010 0010 A=80M/4=20M B=80M/4=20M 时钟预分频寄存器设置
PWMSCLA = 5; // SA=A/(2*5)=2M SA时钟设置
PWME_PWME1 = 0; // Disable PWM1
PWME_PWME5 = 0; // Disable PWM5
PWMPOL_PPOL1 = 1; // Duty=High Time 极性设置
PWMPOL_PPOL5 = 1;
PWMCAE_CAE1 = 0; // Left-aligned 对齐方式设置
PWMCAE_CAE5 = 0;
PWMCTL_CON01 = 1; // concatenation 控制寄存器设置
PWMCTL_CON45 = 1;
PWMPER01 = 40000; // Frequency=A/40000=2M/40000=50hz
PWMPER45 = 40000; // Frequency=A/40000=2M/40000=50hz
PWMDTY01 = 3430; // Duty cycle
PWMDTY45 = 2850;
PWMCLK_PCLK1 = 1; // PWM1 --> Clock SA 时钟源的选择
PWMCLK_PCLK5 = 1; // PWM5 --> Clock SA 时钟源的选择
PWME_PWME1 = 1; // Enable PWM1
PWME_PWME5 = 1; // Enable PWM5
}