синхронизация шим после изменения частоты
This commit is contained in:
parent
44cfb121d4
commit
9a7c7c5829
@ -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;
|
if(PeriodPWM[0] > PERIOD_MOTOR) PeriodPWM[0]=PERIOD_MOTOR;
|
||||||
PeriodPWM[1] = PeriodPWM[0];
|
PeriodPWM[1] = PeriodPWM[0];
|
||||||
vectorRegKoeffRecalc(PeriodPWM[0]/PERIOD_MOTOR);
|
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];
|
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;
|
PeriodPWM_2 = PeriodPWM[0]/2;
|
||||||
EPwmRegs[11]->TBPRD = PeriodPWM[0]*2-1;
|
EPwmRegs[11]->TBPRD = PeriodPWM[0]*2-1;
|
||||||
PWM_SDFM_delay = 2*PeriodPWM[0] - 5000;
|
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_A]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UA;
|
||||||
EPwmRegs[PWM_B]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UB;
|
EPwmRegs[PWM_B]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UB;
|
||||||
EPwmRegs[PWM_C]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UC;
|
EPwmRegs[PWM_C]->CMPA.bit.CMPA = PeriodPWM[0] - PWM_motor.UC;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user