/** ************************************************************************** * @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 ADC_Set_Channel_Value(ADC3, 4, ReadInputArray(0,0)); ADC_Set_Channel_Value(ADC3, 5, ReadInputArray(0,1)); ADC_Set_Channel_Value(ADC3, 6, ReadInputArray(0,2)); ADC_Set_Channel_Value(ADC3, 7, ReadInputArray(0,3)); ADC_Set_Channel_Value(ADC3, 8, ReadInputArray(0,4)); ADC_Set_Channel_Value(ADC3, 10, ReadInputArray(0,5)); __HAL_TIM_SET_AUTORELOAD(&adc_tim, ReadInputArray(1, 0)); // 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); for (int i = 0; i < 2; i++) { WriteOutputArray(ZC_Detected[i], 0, i); } extern ADC_Period_t adc; for(int i = 0; i < 6; i++) { WriteOutputArray(adc.Data[i], 1, i); } // USER APP OUTPUT END }