8H8K ARR预装载计算
PWM7_Duty = 2391;//周期2390PWMB_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
PWMB_CCER2 = 0x00;
PWMB_CCMR1 = 0x68; //通道模式配置
PWMB_CCMR2 = 0x68;//
PWMB_CCMR3 = 0x68;
PWMB_CCMR4 = 0x68;
PWMB_CCER1 = 0x33; //配置通道输出使能和极性
PWMB_CCER2 = 0x33;
PWMB_ARRH = (uint8_t)(PWM_PERIOD >> 8); //设置周期时间
PWMB_ARRL = (uint8_t)PWM_PERIOD;
PWMB_ENO = 0x00;
//PWMB_ENO |= 0x01; //PWM5使能输出
PWMB_ENO |= 0x04; //PWM6使能输出
PWMB_ENO |= 0x10; //PWM7使能输出
PWMB_PS = 0x00; //高级 PWM 通道输出脚选择位
// PWMB_PS |= 0x00; //选择 PWM5 通道
PWMB_PS |= 0x00; //选择 PWM6 通道?? P2.1
PWMB_PS |= 0x00; //选择 PWM7 通道P2.2
PWMB_BKR = 0x80; //使能主输出
PWMB_CR1 |= 0x81;//ARR预装载,开始计时129
PWMB_CCR6H = (uint8_t)(PWM6_Duty >> 8); //设置占空比时间
PWMB_CCR6L = (uint8_t)(PWM6_Duty);
PWMB_CCR7H = (uint8_t)(PWM7_Duty >> 8); //设置占空比时间
PWMB_CCR7L = (uint8_t)(PWM7_Duty);
}
PWMB_CR1 |= 0x81;//这个ARR预装载值怎么计算
ARR决定频率,按照需要的频率计算
PWMB_ARR = PWM_PERIOD; //ARR就是用于设置PWM周期
页:
[1]