Управление тормозом
This commit is contained in:
parent
78332f4873
commit
5bbcece870
Binary file not shown.
@ -36,29 +36,31 @@ typedef struct
|
||||
|
||||
volatile strPWMABC PWM_motor = {PERIOD_2, PERIOD_2, PERIOD_2};
|
||||
|
||||
int16_t A_proc,B_proc,C_proc;
|
||||
uint16_t PWM_brake = PERIOD_MOTOR;
|
||||
|
||||
void pwm_set_volt_3F(float phaseA, float phaseB, float phaseC, float Udc)
|
||||
{
|
||||
int16_t A,B,C;
|
||||
|
||||
|
||||
Gpio4out(1);
|
||||
|
||||
A = (int16_t)((phaseA/Udc)*PERIOD_2);
|
||||
B = (int16_t)((phaseB/Udc)*PERIOD_2);
|
||||
C = (int16_t)((phaseC/Udc)*PERIOD_2);
|
||||
A_proc = (int16_t)((phaseA/Udc)*PERIOD_2);
|
||||
B_proc = (int16_t)((phaseB/Udc)*PERIOD_2);
|
||||
C_proc = (int16_t)((phaseC/Udc)*PERIOD_2);
|
||||
|
||||
Gpio4out(0);
|
||||
|
||||
if(A > 0) A+= EPWM_DB/2;
|
||||
else if(A < 0) A-= EPWM_DB/2;
|
||||
if(B > 0) B+= EPWM_DB/2;
|
||||
else if(B < 0) B-= EPWM_DB/2;
|
||||
if(C > 0) C+= EPWM_DB/2;
|
||||
else if(C < 0) C-= EPWM_DB/2;
|
||||
if(A_proc > 0) A_proc+= EPWM_DB/2;
|
||||
else if(A_proc < 0) A_proc-= EPWM_DB/2;
|
||||
if(B_proc > 0) B_proc+= EPWM_DB/2;
|
||||
else if(B_proc < 0) B_proc-= EPWM_DB/2;
|
||||
if(C_proc > 0) C_proc+= EPWM_DB/2;
|
||||
else if(C_proc < 0) C_proc-= EPWM_DB/2;
|
||||
|
||||
PWM_motor.UA = PERIOD_2 + A;
|
||||
PWM_motor.UB = PERIOD_2 + B;
|
||||
PWM_motor.UC = PERIOD_2 - C;
|
||||
PWM_motor.UA = PERIOD_2 + A_proc;
|
||||
PWM_motor.UB = PERIOD_2 + B_proc;
|
||||
PWM_motor.UC = PERIOD_2 - C_proc;
|
||||
|
||||
FaultABC = 0;//(FaultPWM);
|
||||
if(FaultABC) FaultABCFix = FaultABC;
|
||||
@ -76,6 +78,7 @@ void pwm_set_volt_3F(float phaseA, float phaseB, float phaseC, float Udc)
|
||||
EPwmRegs[PWM_B]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_motor.UB;
|
||||
EPwmRegs[PWM_C]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_motor.UC;
|
||||
|
||||
EPwmRegs[3]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_brake;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user