/************************************************************************** Description: После загрузки процессора функция вызывается один раз и инициализирует управляющие регистры процессора TMS320F28335/TMS320F28379D. Автор: Улитовский Д.И. Дата последнего обновления: 2021.10.04 **************************************************************************/ #include "def.h" #include "init28335.h" #define FREQ_TIMER_3 (FREQ_PWM*2) void init28335(void) { edrk.flag_second_PCH = 0; edrk_init_variables_matlab(); init_global_time_struct(FREQ_TIMER_3); } //void init28335(void) void edrk_init_variables_matlab(void) { initVectorControl(); InitXPWM(FREQ_PWM); InitPWM_Variables(edrk.flag_second_PCH); //#if(SENSOR_ALG==SENSOR_ALG_23550) // rotorInit(); //#endif //#if(SENSOR_ALG==SENSOR_ALG_22220) // // 22220 // rotorInit_22220(); //#endif control_station.clear(&control_station); edrk_init_matlab(); init_ramp_all_zadanie(); init_all_limit_koeffs(); } void edrk_init_matlab(void) { edrk.Uzad_max = _IQ(K_STATOR_MAX); // макс амплитуда в Км для минимального импульса = DEF_PERIOD_MIN_MKS edrk.iq_bpsi_normal = _IQ(BPSI_NORMAL / NORMA_FROTOR); // edrk.iq_bpsi_max = _IQ(BPSI_MAXIMAL/NORMA_FROTOR); // edrk.iq_f_provorot = _IQ(F_PROVOROT/NORMA_FROTOR); edrk.flag_enable_update_hmi = 1; edrk.zadanie.ZadanieU_Charge = NOMINAL_U_ZARYAD; edrk.zadanie.iq_ZadanieU_Charge = _IQ(NOMINAL_U_ZARYAD / NORMA_ACP); edrk.zadanie.iq_set_break_level = _IQ(NOMINAL_U_BREAK_LEVEL / NORMA_ACP); control_station.setup_time_detect_active[CONTROL_STATION_TERMINAL_RS232] = 50; }