Куча всего.

Добавлена интерполяция по таблице датчиков
Структурирован проект в матлаб
This commit is contained in:
2025-11-14 18:03:44 +03:00
parent e4f05bdf6a
commit 2cdcebeffa
10 changed files with 172 additions and 60 deletions

View File

@@ -8,7 +8,7 @@
#define PIN_READ(_verbname_) (_verbname_##_GPIO_Port->ODR & (_verbname_##_Pin)) ? 1 : 0
void ThyristorWrite(real_T* Buffer)
void Write_Thyristors(real_T* Buffer, int ind_port)
{
int pwm1_pin = PIN_READ(PWM1);
int pwm2_pin = PIN_READ(PWM2);
@@ -18,14 +18,38 @@ void ThyristorWrite(real_T* Buffer)
int pwm6_pin = PIN_READ(PWM6);
WriteOutputArray(pwm1_pin, 0, 0);
WriteOutputArray(pwm2_pin, 0, 1);
WriteOutputArray(pwm3_pin, 0, 2);
WriteOutputArray(pwm4_pin, 0, 3);
WriteOutputArray(pwm5_pin, 0, 4);
WriteOutputArray(pwm6_pin, 0, 5);
WriteOutputArray(pwm1_pin, ind_port, 0);
WriteOutputArray(pwm2_pin, ind_port, 1);
WriteOutputArray(pwm3_pin, ind_port, 2);
WriteOutputArray(pwm4_pin, ind_port, 3);
WriteOutputArray(pwm5_pin, ind_port, 4);
WriteOutputArray(pwm6_pin, ind_port, 5);
}
void Write_PowerMonitor(real_T* Buffer, int ind_port)
{
int nn = 0;
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.U[i], ind_port, nn++);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.ZC_Detected[i], ind_port, nn++);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.F[i], ind_port, nn++);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.I[i], ind_port, nn++);
}
for (int i = 0; i < 2; i++)
{
WriteOutputArray(pm.T[i], ind_port, nn++);
}
}
/**
* @brief Функция для записи входов в приложение МК
* @param u - массив входных значений
@@ -49,41 +73,13 @@ void app_readInputs(const real_T* Buffer) {
*/
void app_writeOutputBuffer(real_T* Buffer) {
// USER APP OUTPUT START
//ThyristorWrite(Buffer);
for (int i = 0; i < 2; i++)
{
WriteOutputArray(pm.ZC_Detected[i], 0, i);
}
for (int i = 0; i < 2; i++)
{
WriteOutputArray(pm.zc.Channel[i].DebounceCounter, 0, i+2);
}
//ThyristorWrite(Buffer, 0);
Write_PowerMonitor(Buffer, 1);
extern ADC_Periodic_t adc;
for(int i = 0; i < 6; i++)
{
WriteOutputArray(pm.adc.Data[i], 1, i);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.U[i], 2, i);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.ZC_Detected[i], 2, i + 3);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.I[i], 2, i + 6);
}
for (int i = 0; i < 3; i++)
{
WriteOutputArray(pm.F[i], 2, i + 9);
}
WriteOutputArray(hmcu.dSFuncPeriod, 2, 12);
WriteOutputArray(hmcu.dSFuncTime, 2, 13);
WriteOutputArray(hmcu.dMCUStepTime, 2, 14);
// USER APP OUTPUT END
}