41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
//
|
|
// Created by ZK on 24-5-10.
|
|
//
|
|
|
|
#include "APP_Task.h"
|
|
#include "APP_Main.h"
|
|
#include "Angle.h"
|
|
#include "InteriorADC.h"
|
|
#include "Controller/Controller.h"
|
|
|
|
|
|
float CurrA, CurrB, CurrC;
|
|
float Current_Temp, V_Temp;
|
|
//float32_t NowAngle;
|
|
|
|
float Current_Temp1, ii = 0.0f, iii = 0.0f;
|
|
|
|
#define PWM_FREQUENCY 24000
|
|
#define CURRENT_MEASURE_HZ PWM_FREQUENCY
|
|
#define CURRENT_MEASURE_PERIOD (float) (1.0f / (float) CURRENT_MEASURE_HZ)
|
|
|
|
#define TIMER0_CLK_MHz 168
|
|
#define PWM_PERIOD_CYCLES (uint16_t)((TIMER0_CLK_MHz * (uint32_t) 1000000u / ((uint32_t) (PWM_FREQUENCY))) & 0xFFFE)
|
|
#define HALF_PWM_PERIOD_CYCLES (uint16_t)(PWM_PERIOD_CYCLES / 2U)
|
|
|
|
|
|
void High_Frequency_Task() {
|
|
|
|
ii += 0.000001f;
|
|
// if (ii == 0.1f) { ii = 0.1f-0.00001f; }
|
|
iii += 0.1f;
|
|
if (iii >= 360.0f) { iii = 0.0f; }
|
|
|
|
Generate(0, 0.02f, iii);
|
|
// SendCurrent_Vofa(FOC.dtc_a, iii, (uint16_t) (FOC.dtc_a * (float) HALF_PWM_PERIOD_CYCLES));
|
|
TIM1->CCR1 = (uint16_t) (FOC.dtc_a * (float) HALF_PWM_PERIOD_CYCLES);
|
|
TIM1->CCR2 = (uint16_t) (FOC.dtc_b * (float) HALF_PWM_PERIOD_CYCLES);
|
|
TIM1->CCR3 = (uint16_t) (FOC.dtc_c * (float) HALF_PWM_PERIOD_CYCLES);
|
|
|
|
// SendCurrent_Vofa((ADC1->JDR1)/4096.0f*3.3f/0.005f/7.33333f, 0, 0);
|
|
} |