本帖最后由 huiyo*** 于 2024-4-1 19:51 编辑
问题2:原因是PWM模块设置问题,设置PWM5为PWM模式,PMW6 ,PWM7, PWM8 输出比较模式,使能PMW6 ,PWM7, PWM8 比较更新中断
这个是PWM没有更新输出的波形,很稳定。
中断函数如下:
- void PWMB_ISR(void) interrupt 27
- {
- if(PWMB_SR1 & 0x01)
- {
- PWMB_CCR6H = (uint8_t)(PWM6_Duty_Temp >>8);
- PWMB_CCR6L = (uint8_t)(PWM6_Duty_Temp);
- PWMB_CCR7H = (uint8_t)(PWM6_Duty_Temp >>8);
- PWMB_CCR7L = (uint8_t)(PWM6_Duty_Temp);
- PWMB_CCR8H = (uint8_t)(PWM5_Duty_Temp >>8);
- PWMB_CCR8L = (uint8_t)(PWM5_Duty_Temp);
- PWMB_SR1 &= ~0x01;
- }
- else if(PWMB_SR1 & 0x04)
- {
- PWMB_CCR6H = (uint8_t)(PWM6_Duty_Temp >>8);
- PWMB_CCR6L = (uint8_t)(PWM6_Duty_Temp);
- PWMB_SR1 &= ~0x04;
- }
- else if(PWMB_SR1 & 0x08)
- {
- PWMB_CCR7H = (uint8_t)(PWM6_Duty_Temp >>8);
- PWMB_CCR7L = (uint8_t)(PWM6_Duty_Temp);
- PWMB_SR1 &= ~0x08;
- }
- else if(PWMB_SR1 & 0x10)
- {
- PWMB_CCR8H = (uint8_t)(PWM5_Duty_Temp >>8);
- PWMB_CCR8L = (uint8_t)(PWM5_Duty_Temp);
- PWMB_SR1 &= ~0x10;
- }
- else
- {
- PWMB_SR1 = 0;
- }
- }
复制代码
问题3:为什么不能进入比较更新中断。
|