Добавлена модель МК матлаб с компилятором MinGW
Но по какой-то приниче запуск модели лочит MCU.mexw64 и его нельзя удалить. Но при этом можно переименовать... непонятно крч
This commit is contained in:
10
MATLAB/app_wrapper/app_configs.h
Normal file
10
MATLAB/app_wrapper/app_configs.h
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file app_config.h
|
||||
* @brief Заголовочный файл для пользовательских конфигураций.
|
||||
**************************************************************************/
|
||||
#ifndef _APP_CONFIG
|
||||
#define _APP_CONFIG
|
||||
|
||||
|
||||
#endif //_APP_CONFIG
|
||||
18
MATLAB/app_wrapper/app_includes.h
Normal file
18
MATLAB/app_wrapper/app_includes.h
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file app_includes.h
|
||||
* @brief Заголовочный файл для подключаения заголовочных файлов программы МК.
|
||||
**************************************************************************/
|
||||
#ifndef _APP_INCLUDES_H_
|
||||
#define _APP_INCLUDES_H_
|
||||
|
||||
#include "app_configs.h"
|
||||
|
||||
// INCLUDES START
|
||||
// Инклюды для доступа к коду МК в коде оболочке
|
||||
//#include "stm32_matlab_conf.h"
|
||||
#include "main.h"
|
||||
#include "tim.h"
|
||||
// INCLUDES END
|
||||
|
||||
#endif //_APP_INCLUDES_H_
|
||||
39
MATLAB/app_wrapper/app_init.c
Normal file
39
MATLAB/app_wrapper/app_init.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file app_init.h
|
||||
* @brief Файл с функцией инициализации программы МК @ref app_init.
|
||||
**************************************************************************/
|
||||
#include "mcu_wrapper_conf.h"
|
||||
#include "app_wrapper.h"
|
||||
|
||||
/**
|
||||
* @brief Функция для инициализации приложения МК
|
||||
* @details Используется в случае симуляции без отдельного потока для main().
|
||||
*/
|
||||
void app_init(void) {
|
||||
// USER APP INIT START
|
||||
// Код для инициализации приложения МК
|
||||
//
|
||||
// Вызов разных функций в случае,
|
||||
// если не используется отдельный поток для main().
|
||||
HAL_Init();
|
||||
MX_TIM1_Init();
|
||||
MX_TIM3_Init();
|
||||
__HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_1, __HAL_TIM_GET_AUTORELOAD(&hpwm1)/2);
|
||||
HAL_TIM_PWM_Start(&hpwm1, PWM_CHANNEL_1);
|
||||
// USER APP INIT END
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Функция для деинициализации приложения МК
|
||||
*/
|
||||
void app_deinit(void) {
|
||||
// USER APP DEINIT START
|
||||
// Код для деинициализации приложения МК
|
||||
//
|
||||
// Структуры, переменные и так далее, которые надо очистить,
|
||||
// для повторного запуска симуляции.
|
||||
deInitialize_MCU();
|
||||
// USER APP DEINIT END
|
||||
}
|
||||
48
MATLAB/app_wrapper/app_io.c
Normal file
48
MATLAB/app_wrapper/app_io.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file app_init.h
|
||||
* @brief Файл с функциями записи входов/выходов программы МК @ref app_init.
|
||||
**************************************************************************/
|
||||
#include "mcu_wrapper_conf.h"
|
||||
#include "app_wrapper.h"
|
||||
|
||||
#define PIN_READ(_verbname_) (_verbname_##_GPIO_Port->ODR & (_verbname_##_Pin)) ? 1 : 0
|
||||
|
||||
void ThyristorWrite(real_T* Buffer)
|
||||
{
|
||||
int pwm1_pin = PIN_READ(PWM1);
|
||||
int pwm2_pin = PIN_READ(PWM2);
|
||||
int pwm3_pin = PIN_READ(PWM3);
|
||||
int pwm4_pin = PIN_READ(PWM4);
|
||||
int pwm5_pin = PIN_READ(PWM5);
|
||||
int pwm6_pin = PIN_READ(PWM6);
|
||||
|
||||
|
||||
WriteOutputArray(pwm1_pin, 0, 0);
|
||||
WriteOutputArray(pwm2_pin, 0, 1);
|
||||
WriteOutputArray(pwm3_pin, 0, 2);
|
||||
WriteOutputArray(pwm4_pin, 0, 3);
|
||||
WriteOutputArray(pwm5_pin, 0, 4);
|
||||
WriteOutputArray(pwm6_pin, 0, 5);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Функция для записи входов в приложение МК
|
||||
* @param u - массив входных значений
|
||||
*/
|
||||
void app_readInputs(const real_T* Buffer) {
|
||||
// USER APP INPUT START
|
||||
|
||||
// USER APP INPUT END
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Функция для записи выходов приложения МК
|
||||
* @param xD - массив буффера выходов(дискретных выходов)
|
||||
* @details Используте WriteOutputArray(val, arr_ind, val_ind) для записи
|
||||
*/
|
||||
void app_writeOutputBuffer(real_T* Buffer) {
|
||||
// USER APP OUTPUT START
|
||||
ThyristorWrite(Buffer);
|
||||
// USER APP OUTPUT END
|
||||
}
|
||||
20
MATLAB/app_wrapper/app_wrapper.c
Normal file
20
MATLAB/app_wrapper/app_wrapper.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include "mcu_wrapper_conf.h"
|
||||
#include "app_wrapper.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Функция для симуляции шага приложения МК
|
||||
* @details Используется в случае симуляции без отдельного потока для main().
|
||||
*/
|
||||
void app_step(void)
|
||||
{
|
||||
// USER APP STEP START
|
||||
|
||||
// USER APP STEP END
|
||||
}
|
||||
|
||||
|
||||
// DUMMY START
|
||||
// Заглушки для различных функций и переменных
|
||||
|
||||
// DUMMY END
|
||||
12
MATLAB/app_wrapper/app_wrapper.h
Normal file
12
MATLAB/app_wrapper/app_wrapper.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef _APP_WRAPPER_H_
|
||||
#define _APP_WRAPPER_H_
|
||||
|
||||
#include "app_includes.h"
|
||||
|
||||
void app_step(void);
|
||||
void app_init(void);
|
||||
void app_deinit(void);
|
||||
void app_readInputs(const real_T* u);
|
||||
void app_writeOutputBuffer(real_T* xD);
|
||||
|
||||
#endif //_APP_WRAPPER_H_
|
||||
Reference in New Issue
Block a user