синхронизация шим после изменения частоты

This commit is contained in:
seklyuts 2024-08-21 13:17:02 +03:00
parent 44cfb121d4
commit 9a7c7c5829

View File

@ -59,7 +59,11 @@ void pwm_set_volt_3F(float phaseA, float phaseB, float phaseC, float Udc, uint16
if(PeriodPWM[0] > PERIOD_MOTOR) PeriodPWM[0]=PERIOD_MOTOR;
PeriodPWM[1] = PeriodPWM[0];
vectorRegKoeffRecalc(PeriodPWM[0]/PERIOD_MOTOR);
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;//
EPwmRegs[PWM_A]->TBPRD = EPwmRegs[PWM_B]->TBPRD = EPwmRegs[PWM_C]->TBPRD = PeriodPWM[0];
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;// синхронный запуск таймеров
EDIS;
PeriodPWM_2 = PeriodPWM[0]/2;
EPwmRegs[11]->TBPRD = PeriodPWM[0]*2-1;
PWM_SDFM_delay = 2*PeriodPWM[0] - 5000;
@ -104,7 +108,6 @@ void pwm_set_volt_3F(float phaseA, float phaseB, float phaseC, float Udc, uint16
EPwmRegs[PWM_A]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UA;
EPwmRegs[PWM_B]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UB;
EPwmRegs[PWM_C]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UC;
}