329 lines
9.0 KiB
C
329 lines
9.0 KiB
C
/**************************************************************************
|
|
Äàííûé ôàéë íàñòðàèâàåò ñòðóêòóðû äëÿ ñèìóëÿöèè ïåðèôåðèé, êîòîðûå âûáðàíû
|
|
äåôàéíàìè â stm32f4xx_matlab_conf.h.
|
|
|
|
**************************************************************************/
|
|
#include "mcu_wrapper_conf.h"
|
|
|
|
MCU_MemoryTypeDef MCU_MEM;
|
|
MCU_CortexMemoryTypeDef MCU_CORTEX_MEM;
|
|
DBGMCU_TypeDef DEBUG_MCU;
|
|
|
|
//-----------------------------------------------------------------------//
|
|
/*------------------------------FUNCTIONS--------------------------------*/
|
|
// MCU PERIPH INIT
|
|
void Initialize_Periph_Sim(void)
|
|
{
|
|
Init_TIM_SIM();
|
|
}
|
|
// MCU PERIPH DEINIT
|
|
void deInitialize_Periph_Sim(void)
|
|
{
|
|
TIM_SIM_DEINIT();
|
|
}
|
|
// MCU DEINIT
|
|
void deInitialize_MCU(void)
|
|
{
|
|
// îáíóëåíèå ñòðóêòóðû, óïðàâëÿþùåé ïðîãðàììîé ÌÊ
|
|
memset(&hmcu, 0, sizeof(hmcu));
|
|
// îáíóëåíèå ñòðóêòóð, ñèìóëèðóþùèõ ïàìÿòü ÌÊ
|
|
memset(&MCU_MEM, 0, sizeof(MCU_MEM));
|
|
memset(&MCU_CORTEX_MEM, 0, sizeof(MCU_CORTEX_MEM));
|
|
memset(&DEBUG_MCU, 0, sizeof(DEBUG_MCU));
|
|
}
|
|
|
|
|
|
/*------------------------------FUNCTIONS--------------------------------*/
|
|
//-----------------------------------------------------------------------//
|
|
|
|
//-----------------------------------------------------------------------//
|
|
/*-------------------------------TIMERS----------------------------------*/
|
|
// defines structure for simulate
|
|
#ifdef USE_TIM1
|
|
struct TIM_Sim tim1s;
|
|
#endif
|
|
#ifdef USE_TIM2
|
|
struct TIM_Sim tim2s;
|
|
#endif
|
|
#ifdef USE_TIM3
|
|
struct TIM_Sim tim3s;
|
|
#endif
|
|
#ifdef USE_TIM4
|
|
struct TIM_Sim tim4s;
|
|
#endif
|
|
#ifdef USE_TIM5
|
|
struct TIM_Sim tim5s;
|
|
#endif
|
|
#ifdef USE_TIM6
|
|
struct TIM_Sim tim6s;
|
|
#endif
|
|
#ifdef USE_TIM7
|
|
struct TIM_Sim tim7s;
|
|
#endif
|
|
#ifdef USE_TIM8
|
|
struct TIM_Sim tim8s;
|
|
#endif
|
|
#ifdef USE_TIM9
|
|
struct TIM_Sim tim9s;
|
|
#endif
|
|
#ifdef USE_TIM10
|
|
struct TIM_Sim tim10s;
|
|
#endif
|
|
#ifdef USE_TIM11
|
|
struct TIM_Sim tim11s;
|
|
#endif
|
|
#ifdef USE_TIM12
|
|
struct TIM_Sim tim12s;
|
|
#endif
|
|
#ifdef USE_TIM13
|
|
struct TIM_Sim tim13s;
|
|
#endif
|
|
#ifdef USE_TIM14
|
|
struct TIM_Sim tim14s;
|
|
#endif
|
|
|
|
// defines function for filling structure for simulate
|
|
void Init_TIM_SIM(void)
|
|
{
|
|
#ifdef USE_TIM1
|
|
tim1s.tx_cnt = TIM1->CNT;
|
|
tim1s.tx_step = SIM_Sample_Time * ABP2_TIMS_Value;
|
|
|
|
tim1s.Channels.OC1_GPIOx = GPIOE;
|
|
tim1s.Channels.OC1_PIN_SHIFT = 9;
|
|
tim1s.Channels.OC2_GPIOx = GPIOE;
|
|
tim1s.Channels.OC2_PIN_SHIFT = 11;
|
|
tim1s.Channels.OC3_GPIOx = GPIOE;
|
|
tim1s.Channels.OC3_PIN_SHIFT = 13;
|
|
tim1s.Channels.OC4_GPIOx = GPIOE;
|
|
tim1s.Channels.OC4_PIN_SHIFT = 14;
|
|
tim1s.Channels.OC1REF = 0;
|
|
tim1s.Channels.OC2REF = 0;
|
|
tim1s.Channels.OC3REF = 0;
|
|
tim1s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM2
|
|
tim2s.tx_cnt = TIM2->CNT;
|
|
tim2s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim2s.Channels.OC1_GPIOx = GPIOA;
|
|
tim2s.Channels.OC1_PIN_SHIFT = 5;
|
|
tim2s.Channels.OC2_GPIOx = GPIOA;
|
|
tim2s.Channels.OC2_PIN_SHIFT = 1;
|
|
tim2s.Channels.OC3_GPIOx = GPIOA;
|
|
tim2s.Channels.OC3_PIN_SHIFT = 2;
|
|
tim2s.Channels.OC4_GPIOx = GPIOA;
|
|
tim2s.Channels.OC4_PIN_SHIFT = 3;
|
|
tim2s.Channels.OC1REF = 0;
|
|
tim2s.Channels.OC2REF = 0;
|
|
tim2s.Channels.OC3REF = 0;
|
|
tim2s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM3
|
|
tim3s.tx_cnt = TIM3->CNT;
|
|
tim3s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim3s.Channels.OC1_GPIOx = GPIOA;
|
|
tim3s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim3s.Channels.OC2_GPIOx = GPIOA;
|
|
tim3s.Channels.OC2_PIN_SHIFT = 7;
|
|
tim3s.Channels.OC3_GPIOx = GPIOB;
|
|
tim3s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim3s.Channels.OC4_GPIOx = GPIOB;
|
|
tim3s.Channels.OC4_PIN_SHIFT = 1;
|
|
tim3s.Channels.OC1REF = 0;
|
|
tim3s.Channels.OC2REF = 0;
|
|
tim3s.Channels.OC3REF = 0;
|
|
tim3s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM4
|
|
tim4s.tx_cnt = TIM4->CNT;
|
|
tim4s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim4s.Channels.OC1_GPIOx = GPIOD;
|
|
tim4s.Channels.OC1_PIN_SHIFT = 12;
|
|
tim4s.Channels.OC2_GPIOx = GPIOD;
|
|
tim4s.Channels.OC2_PIN_SHIFT = 13;
|
|
tim4s.Channels.OC3_GPIOx = GPIOD;
|
|
tim4s.Channels.OC3_PIN_SHIFT = 14;
|
|
tim4s.Channels.OC4_GPIOx = GPIOD;
|
|
tim4s.Channels.OC4_PIN_SHIFT = 15;
|
|
tim4s.Channels.OC1REF = 0;
|
|
tim4s.Channels.OC2REF = 0;
|
|
tim4s.Channels.OC3REF = 0;
|
|
tim4s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM5
|
|
tim5s.tx_cnt = TIM5->CNT;
|
|
tim5s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim5s.Channels.OC1_GPIOx = GPIOA;
|
|
tim5s.Channels.OC1_PIN_SHIFT = 0;
|
|
tim5s.Channels.OC2_GPIOx = GPIOA;
|
|
tim5s.Channels.OC2_PIN_SHIFT = 1;
|
|
tim5s.Channels.OC3_GPIOx = GPIOA;
|
|
tim5s.Channels.OC3_PIN_SHIFT = 2;
|
|
tim5s.Channels.OC4_GPIOx = GPIOA;
|
|
tim5s.Channels.OC4_PIN_SHIFT = 3;
|
|
tim5s.Channels.OC1REF = 0;
|
|
tim5s.Channels.OC2REF = 0;
|
|
tim5s.Channels.OC3REF = 0;
|
|
tim5s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM6
|
|
tim6s.tx_cnt = TIM6->CNT;
|
|
tim6s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim6s.Channels.OC1_GPIOx = GPIOA;
|
|
tim6s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim6s.Channels.OC2_GPIOx = GPIOA;
|
|
tim6s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim6s.Channels.OC3_GPIOx = GPIOA;
|
|
tim6s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim6s.Channels.OC4_GPIOx = GPIOA;
|
|
tim6s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim6s.Channels.OC1REF = 0;
|
|
tim6s.Channels.OC2REF = 0;
|
|
tim6s.Channels.OC3REF = 0;
|
|
tim6s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM7
|
|
tim7s.tx_cnt = TIM7->CNT;
|
|
tim7s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim7s.Channels.OC1_GPIOx = GPIOA;
|
|
tim7s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim7s.Channels.OC2_GPIOx = GPIOA;
|
|
tim7s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim7s.Channels.OC3_GPIOx = GPIOA;
|
|
tim7s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim7s.Channels.OC4_GPIOx = GPIOA;
|
|
tim7s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim7s.Channels.OC1REF = 0;
|
|
tim7s.Channels.OC2REF = 0;
|
|
tim7s.Channels.OC3REF = 0;
|
|
tim7s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM8
|
|
tim8s.tx_cnt = TIM8->CNT;
|
|
tim8s.tx_step = SIM_Sample_Time * ABP2_TIMS_Value;
|
|
|
|
tim8s.Channels.OC1_GPIOx = GPIOA;
|
|
tim8s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim8s.Channels.OC2_GPIOx = GPIOA;
|
|
tim8s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim8s.Channels.OC3_GPIOx = GPIOA;
|
|
tim8s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim8s.Channels.OC4_GPIOx = GPIOA;
|
|
tim8s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim8s.Channels.OC1REF = 0;
|
|
tim8s.Channels.OC2REF = 0;
|
|
tim8s.Channels.OC3REF = 0;
|
|
tim8s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM9
|
|
tim9s.tx_cnt = TIM9->CNT;
|
|
tim9s.tx_step = SIM_Sample_Time * ABP2_TIMS_Value;
|
|
|
|
tim9s.Channels.OC1_GPIOx = GPIOA;
|
|
tim9s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim9s.Channels.OC2_GPIOx = GPIOA;
|
|
tim9s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim9s.Channels.OC3_GPIOx = GPIOA;
|
|
tim9s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim9s.Channels.OC4_GPIOx = GPIOA;
|
|
tim9s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim9s.Channels.OC1REF = 0;
|
|
tim9s.Channels.OC2REF = 0;
|
|
tim9s.Channels.OC3REF = 0;
|
|
tim9s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM10
|
|
tim10s.tx_cnt = TIM10->CNT;
|
|
tim10s.tx_step = SIM_Sample_Time * ABP2_TIMS_Value;
|
|
|
|
tim10s.Channels.OC1_GPIOx = GPIOA;
|
|
tim10s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim10s.Channels.OC2_GPIOx = GPIOA;
|
|
tim10s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim10s.Channels.OC3_GPIOx = GPIOA;
|
|
tim10s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim10s.Channels.OC4_GPIOx = GPIOA;
|
|
tim10s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim10s.Channels.OC1REF = 0;
|
|
tim10s.Channels.OC2REF = 0;
|
|
tim10s.Channels.OC3REF = 0;
|
|
tim10s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM11
|
|
tim11s.tx_cnt = TIM11->CNT;
|
|
tim11s.tx_step = SIM_Sample_Time * ABP2_TIMS_Value;
|
|
|
|
tim11s.Channels.OC1_GPIOx = GPIOA;
|
|
tim11s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim11s.Channels.OC2_GPIOx = GPIOA;
|
|
tim11s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim11s.Channels.OC3_GPIOx = GPIOA;
|
|
tim11s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim11s.Channels.OC4_GPIOx = GPIOA;
|
|
tim11s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim11s.Channels.OC1REF = 0;
|
|
tim11s.Channels.OC2REF = 0;
|
|
tim11s.Channels.OC3REF = 0;
|
|
tim11s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM12
|
|
tim12s.tx_cnt = TIM12->CNT;
|
|
tim12s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim12s.Channels.OC1_GPIOx = GPIOA;
|
|
tim12s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim12s.Channels.OC2_GPIOx = GPIOA;
|
|
tim12s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim12s.Channels.OC3_GPIOx = GPIOA;
|
|
tim12s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim12s.Channels.OC4_GPIOx = GPIOA;
|
|
tim12s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim12s.Channels.OC1REF = 0;
|
|
tim12s.Channels.OC2REF = 0;
|
|
tim12s.Channels.OC3REF = 0;
|
|
tim12s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM13
|
|
tim13s.tx_cnt = TIM13->CNT;
|
|
tim13s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim13s.Channels.OC1_GPIOx = GPIOA;
|
|
tim13s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim13s.Channels.OC2_GPIOx = GPIOA;
|
|
tim13s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim13s.Channels.OC3_GPIOx = GPIOA;
|
|
tim13s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim13s.Channels.OC4_GPIOx = GPIOA;
|
|
tim13s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim13s.Channels.OC1REF = 0;
|
|
tim13s.Channels.OC2REF = 0;
|
|
tim13s.Channels.OC3REF = 0;
|
|
tim13s.Channels.OC4REF = 0;
|
|
#endif
|
|
#ifdef USE_TIM14
|
|
tim14s.tx_cnt = TIM14->CNT;
|
|
tim14s.tx_step = SIM_Sample_Time * ABP1_TIMS_Value;
|
|
|
|
tim14s.Channels.OC1_GPIOx = GPIOA;
|
|
tim14s.Channels.OC1_PIN_SHIFT = 6;
|
|
tim14s.Channels.OC2_GPIOx = GPIOA;
|
|
tim14s.Channels.OC2_PIN_SHIFT = 0;
|
|
tim14s.Channels.OC3_GPIOx = GPIOA;
|
|
tim14s.Channels.OC3_PIN_SHIFT = 0;
|
|
tim14s.Channels.OC4_GPIOx = GPIOA;
|
|
tim14s.Channels.OC4_PIN_SHIFT = 0;
|
|
tim14s.Channels.OC1REF = 0;
|
|
tim14s.Channels.OC2REF = 0;
|
|
tim14s.Channels.OC3REF = 0;
|
|
tim14s.Channels.OC4REF = 0;
|
|
#endif
|
|
}
|
|
/*-------------------------------TIMERS----------------------------------*/
|
|
//-----------------------------------------------------------------------//
|