matlab_23550/Inu/xilinx_wrapper/pwm_sim.h
Razvalyaev 20a0a62cc8 #3 Переструктурирован проект, начата работа над улучшением модуля ШИМ (open #4)
- Папка app_wrapper содержит модули для управления приложением МК: инициализция, входы/выходы, вызов функций приложения

- Папка xilinx_wrapper содержит модули для имитации xilinx (на будущее, хочу вытащить в отдельные sfunction)

- Папка Src содержит исходный код приложения МК

- В корне Inu файлы для запуска приложения (модулей app_wrapper) и run_bat для компиляции sfunction
2025-01-17 10:19:40 +03:00

82 lines
1.7 KiB
C

#include "mcu_wrapper_conf.h"
#ifndef PWM_SIM
#define PWM_SIM
#define UNITED_COUNTER
#define SIMULATION_MODE_XILINX
//#define SIMULATION_MODE_REGULAR_PWM
// Для моделирования Event Manager
// ... Dead-Band Submodule
typedef struct
{
int DtCntPeriod;
int stateDt;
int dtcnt;
int pre_ciA;
int pre_ciB;
}DeadBandSimHandle;
enum StateDeadTime {
stateDtWait = 0,
stateDtReady
};
// ... Time-Base Submodule, Counter-Compare Submodule и Event-Trigger Submodule
typedef struct
{
double TxCntPlus;
double TPr;
double tcntAux;
double tcntAuxPrev;
double tcnt;
double cmpA;
double cmpB;
int ciA;
int ciB;
DeadBandSimHandle dtsim;
int tkLine;
void *simulatePwm()
}TimerSimHandle;
// ... Time-Base Submodule, Counter-Compare Submodule и Event-Trigger Submodule
typedef struct
{
TimerSimHandle* tsim1;
TimerSimHandle* tsim2;
DeadBandSimHandle dtsim;
}XilinkTkPhaseSimHandle;
extern TimerSimHandle t1sim;
extern TimerSimHandle t2sim;
extern TimerSimHandle t3sim;
extern TimerSimHandle t4sim;
extern TimerSimHandle t5sim;
extern TimerSimHandle t6sim;
extern TimerSimHandle t7sim;
extern TimerSimHandle t8sim;
extern TimerSimHandle t9sim;
extern TimerSimHandle t10sim;
extern TimerSimHandle t11sim;
extern TimerSimHandle t12sim;
void Simulate_Timers(void);
void Init_Timers(void);
void initSimulateTim(TimerSimHandle* tsim, int period, double step);
void SimulateMainPWM(TimerSimHandle* tsim, int compare);
void SimulateSimplePWM(TimerSimHandle* tsim, int compare);
int simulateTimAndGetCompare(TimerSimHandle* tsim, int compare);
void simulateActionActionQualifierSubmodule(TimerSimHandle* tsim);
void simulateDeadBendSubmodule(TimerSimHandle* tsim);
void simulateTripZoneSubmodule(TimerSimHandle* tsim);
#endif //PWM_SIM