matlab_23550/Inu/Src2/551/main/pll_tools.c
Razvalyaev 7e0063eee0 #3 Скомпилилось, но пока ничего не вызывается
Все основные файлы подтянуты без изменений

Изменены (только папка main_matlab):
- заглушки для ненужных функций (main_matlab.c)
- iq библиотека (IQmathLib_matlab.c)
- библиотеки DSP281x
2025-01-13 11:09:58 +03:00

106 lines
2.3 KiB
C

/*
* pll_tools.c
*
* Created on: 13 íîÿá. 2024 ã.
* Author: Evgeniy_Sokolov
*/
#include <edrk_main.h>
#include <params.h>
#include <params_alg.h>
#include <params_norma.h>
#include <params_pwm24.h>
#include <params_temper_p.h>
#include <project.h>
#include "IQmathLib.h"
#include "mathlib.h"
#include "adc_tools.h"
#include "limit_power.h"
#include "pll_tools.h"
//#pragma DATA_SECTION(pll1, ".slow_vars")
PLL_REC pll1 = PLL_REC_DEFAULT;
void init_50hz_input_net50hz(void)
{
//1. Èíèöèàëèçàöèß
pll1.setup.freq_run_pll = (FREQ_RUN_PLL); // ÷àñòîòà çàïóñêà ðàñ÷åòà Ãö.
pll1.setup.rotation_u_cba = 0;//0;//1; // ÷åðåäîâàíèå ôàç: 0 - ïðàâèëüíîå A-B-C, 1 - íåïðàâèëüíîå A-C-B
pll1.init(&pll1); // ðàñ÷åò è èíèöèàëèçàöèß âíóòðåííèõ ïåðåìåííûõ
// Êîíåö Èíèöèàëèçàöèè
}
void calc_pll_50hz(void)
{
// ïåðåäà÷à äàííûõ â àëãîðèòì.
pll1.input.Input_U_AB = analog.iqUin_A1B1;
pll1.input.Input_U_BC = analog.iqUin_B1C1;
pll1.input.Input_U_CA = analog.iqUin_C1A1;
// ðàñ÷åò, çàïóñêàòü ñ ÷àñòîòîé óêàçàííîé â setup.freq_run_pll
pll1.calc_pll(&pll1);
// Êîíåö ðàñ÷åòà
}
void get_freq_50hz_float(void)
{
float int_delta_freq_test;
// 3. Ïîëó÷åíèå äàííûõ ó íîðìàëüíîì âèäå.
// ïîëó÷åíèå äàííûõ î ÷àñòîòåí ñåòè â Ãö*100.
// ìîæíî âûçûâàòü ðåæå - òîëüêî äëß ïîëó÷åíèÿ äàííûõ.
pll1.get_freq_float(&pll1);
if (edrk.Status_Ready.bits.preImitationReady2)
edrk.freq_50hz_1 = 5001;
else
edrk.freq_50hz_1 = pll1.output.int_freq_net;
if (delta_freq_test>0)
{
int_delta_freq_test = _IQtoF( delta_freq_test) * pll1.setup.freq_run_pll / PI * 50.00; // freq*100
edrk.freq_50hz_1 -= int_delta_freq_test;
}
//
}
void get_freq_50hz_iq(void)
{
// 3. Ïîëó÷åíèå äàííûõ ó íîðìàëüíîì âèäå.
// ïîëó÷åíèå äàííûõ î ÷àñòîòåí ñåòè â Ãö*100.
// ìîæíî âûçûâàòü ðåæå - òîëüêî äëß ïîëó÷åíèÿ äàííûõ.
pll1.get_freq_iq(&pll1);
if (edrk.Status_Ready.bits.preImitationReady2)
edrk.iq_freq_50hz = level_50hz;
else
edrk.iq_freq_50hz = pll1.output.iq_freq_net;
if (delta_freq_test>0)
edrk.iq_freq_50hz -= delta_freq_test;
//
}