30 lines
747 B
C
30 lines
747 B
C
//
|
|
// Created by ZK on 2023/3/14.
|
|
//
|
|
//#include "main.h"
|
|
#include <stdbool.h>
|
|
#include "Controller.h"
|
|
#include "SVPWM/SVPWM.h"
|
|
|
|
tFOC FOC;
|
|
|
|
float uAlpha1;
|
|
float uBeta1;
|
|
|
|
bool Generate(float ud, float uq, float Theta) {
|
|
|
|
inversePark(ud, uq, Theta, &uAlpha1, &uBeta1);
|
|
|
|
if (0 == SVPWM(uAlpha1, uBeta1, &FOC.dtc_a, &FOC.dtc_b, &FOC.dtc_c)) {
|
|
// set_a_duty((uint16_t)(Foc.dtc_a * (float) HALF_PWM_PERIOD_CYCLES));
|
|
// set_b_duty((uint16_t)(Foc.dtc_b * (float) HALF_PWM_PERIOD_CYCLES));
|
|
// set_c_duty((uint16_t)(Foc.dtc_c * (float) HALF_PWM_PERIOD_CYCLES));
|
|
// TIM1->CCR1 = (uint16_t) FOC.dtc_a;
|
|
// TIM1->CCR2 = (uint16_t) FOC.dtc_b;
|
|
// TIM1->CCR3 = (uint16_t) FOC.dtc_c;
|
|
}
|
|
|
|
return FOC.dtc_a;
|
|
}
|
|
|