An error occurred while loading the file. Please try again.
-
Евсеев Алексей authored38c3191a
/* Code generated by Engee
* Model name: mik32_blink.engee
* Code generator: release-1.1.3
* Date: Thu Oct 3 07:47:12 2024
*/
#include "stdint.h"
#include "math.h"
#include "mik32_hal_pcc.h"
#include "mik32_hal_gpio.h"
#include "mik32_blink.h"
/* Block states */
Ext_mik32_blink_S mik32_blink_S;
typedef struct systemClockConfig_cfunc_symbols_t {
uint8_t seq;
} systemClockConfig_cfunc_symbols_t;
typedef struct systemClockConfig_cfunc_params_t {
bool _;
} systemClockConfig_cfunc_params_t;
systemClockConfig_cfunc_params_t systemClockConfig_cfunc_params = {
false
};
static void systemClockConfig_cfunc_init() {
/* Этот код вызывается один раз при инициализации модели */
#ifdef MIK32V2
// Настройка подсистемы тактирования и монитора частоты МК
PCC_InitTypeDef PCC_OscInit = {0};
PCC_OscInit.OscillatorEnable = PCC_OSCILLATORTYPE_ALL;
PCC_OscInit.FreqMon.OscillatorSystem = PCC_OSCILLATORTYPE_OSC32M;
PCC_OscInit.FreqMon.ForceOscSys = PCC_FORCE_OSC_SYS_UNFIXED;
PCC_OscInit.FreqMon.Force32KClk = PCC_FREQ_MONITOR_SOURCE_OSC32K;
PCC_OscInit.AHBDivider = 0;
PCC_OscInit.APBMDivider = 0;
PCC_OscInit.APBPDivider = 0;
PCC_OscInit.HSI32MCalibrationValue = 128;
PCC_OscInit.LSI32KCalibrationValue = 128;
PCC_OscInit.RTCClockSelection = PCC_RTC_CLOCK_SOURCE_AUTO;
PCC_OscInit.RTCClockCPUSelection = PCC_CPU_RTC_CLOCK_SOURCE_OSC32K;
HAL_PCC_Config(&PCC_OscInit);
#else
#endif
}
static void systemClockConfig_cfunc(systemClockConfig_cfunc_symbols_t * cfunc_symbols, systemClockConfig_cfunc_params_t * cfunc_params) {
uint8_t seq;
/* Этот код вызывается на каждом шаге расчета модели */
#ifdef MIK32V2
#else
#endif
cfunc_symbols->seq = seq;
}
static void systemClockConfig_cfunc_term() {
/* Этот код вызывается один раз при остановке модели */
#ifdef MIK32V2
#else
#endif
}
typedef struct HAL_GPIO_WritePin_9_cfunc_symbols_t {
uint8_t seq;
uint8_t state;
} HAL_GPIO_WritePin_9_cfunc_symbols_t;
typedef struct HAL_GPIO_WritePin_9_cfunc_params_t {
bool _;
} HAL_GPIO_WritePin_9_cfunc_params_t;
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
HAL_GPIO_WritePin_9_cfunc_params_t HAL_GPIO_WritePin_9_cfunc_params = {
false
};
static void HAL_GPIO_WritePin_9_cfunc_init() {
/* Этот код вызывается один раз при инициализации модели */
#ifdef MIK32V2
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pull = HAL_GPIO_PULL_NONE;
GPIO_InitStruct.Mode = HAL_GPIO_MODE_GPIO_OUTPUT;
// включение тактирования GPIO_0
__HAL_PCC_GPIO_0_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_9;
HAL_GPIO_Init(GPIO_0, &GPIO_InitStruct);
#else
#endif
}
static void HAL_GPIO_WritePin_9_cfunc(HAL_GPIO_WritePin_9_cfunc_symbols_t * cfunc_symbols, HAL_GPIO_WritePin_9_cfunc_params_t * cfunc_params) {
uint8_t seq = cfunc_symbols->seq;
uint8_t state = cfunc_symbols->state;
/* Этот код вызывается на каждом шаге расчета модели */
#ifdef MIK32V2
HAL_GPIO_WritePin(GPIO_0, GPIO_PIN_9, !state);
#else
#endif
}
static void HAL_GPIO_WritePin_9_cfunc_term() {
/* Этот код вызывается один раз при остановке модели */
#ifdef MIK32V2
#else
#endif
}
/* Model initialize function */
void mik32_blink_init() {
systemClockConfig_cfunc_init();
/* InitializeConditions for UnitDelay: /Sequence/LimitedCounter/UnitDelay */
mik32_blink_S.UnitDelay_state = 0.0;
HAL_GPIO_WritePin_9_cfunc_init();
}
/* Model terminate function */
void mik32_blink_term() {
systemClockConfig_cfunc_term();
HAL_GPIO_WritePin_9_cfunc_term();
}
/* Model step function */
void mik32_blink_step() {
const double Vector[116] = {1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0};
uint8_t UnitDelay;
double Output;
double Sum;
uint8_t DataTypeConversion_1;
double Switch;
/* Output for UnitDelay: /Sequence/LimitedCounter/UnitDelay */
UnitDelay = mik32_blink_S.UnitDelay_state;
/* CFunction: /systemClockConfig incorporates:
*/
systemClockConfig_cfunc_symbols_t systemClockConfig_cfunc_symbols = {
};
systemClockConfig_cfunc(&systemClockConfig_cfunc_symbols, &systemClockConfig_cfunc_params);
/* MultiPortSwitch: /Sequence/Output incorporates:
* UnitDelay: /Sequence/LimitedCounter/UnitDelay
* Constant: /Sequence/Vector
*/
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
Output = Vector[(int32_t)UnitDelay];
/* Sum: /Sequence/LimitedCounter/Increment Real-World Value/Sum incorporates:
* UnitDelay: /Sequence/LimitedCounter/UnitDelay
* Constant: /Sequence/LimitedCounter/Increment Real-World Value/Constant
*/
Sum = UnitDelay + 1;
/* DataTypeConversion: /Data Type Conversion-1 incorporates:
* MultiPortSwitch: /Sequence/Output
*/
DataTypeConversion_1 = (uint8_t)Output;
/* CFunction: /HAL_GPIO_WritePin_9 incorporates:
* CFunction: /systemClockConfig
* DataTypeConversion: /Data Type Conversion-1
*/
HAL_GPIO_WritePin_9_cfunc_symbols_t HAL_GPIO_WritePin_9_cfunc_symbols = {
systemClockConfig_cfunc_symbols.seq,
DataTypeConversion_1,
};
HAL_GPIO_WritePin_9_cfunc(&HAL_GPIO_WritePin_9_cfunc_symbols, &HAL_GPIO_WritePin_9_cfunc_params);
/* Switch: /Sequence/LimitedCounter/Wrap To Zero/Switch incorporates:
* Constant: /Sequence/LimitedCounter/Wrap To Zero/Initial Condition
* Sum: /Sequence/LimitedCounter/Increment Real-World Value/Sum
* Sum: /Sequence/LimitedCounter/Increment Real-World Value/Sum
*/
if (Sum > 115) {
Switch = 0;
} else {
Switch = Sum;
}
/* End of Switch: /Sequence/LimitedCounter/Wrap To Zero/Switch */
/* Update for UnitDelay: /Sequence/LimitedCounter/UnitDelay */
mik32_blink_S.UnitDelay_state = Switch;
}