Razvalyaev
20a0a62cc8
- Папка app_wrapper содержит модули для управления приложением МК: инициализция, входы/выходы, вызов функций приложения - Папка xilinx_wrapper содержит модули для имитации xilinx (на будущее, хочу вытащить в отдельные sfunction) - Папка Src содержит исходный код приложения МК - В корне Inu файлы для запуска приложения (модулей app_wrapper) и run_bat для компиляции sfunction
82 lines
1.7 KiB
C
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
|