matlab_stm_emulate/.outdate/Core/Src/ClockPackTransf.c
alexey 0958cb80c7 Симуляция генерации синусоидального шим и управление по модбас
note:
- модбас не моделируется,  в s-function просто передаются константы режимов.
- лишние файлы убраны в outdate.
- два канала одной фазы переключаются немного криво: на один такт симуляции проскакивает высокий уровень предыдущего канала и только потом включается текущий канал
2024-08-21 12:58:52 +03:00

27 lines
570 B
C

#include "ClockPackTransf.h"
extern TIM_HandleTypeDef htim1;
extern int TIM3_Period;
struct bus message;
void Trans_bus(void)
{
// transmit ADR and DATA
GPIOA->ODR = ((message.ADR.value<<9) | message.DATA.value);
// GPIOA->ODR |= message.DATA.value;
// changing ADR and DATA
message.ADR.value++;
if (message.ADR.value > 7) message.ADR.value = 1;
message.DATA.value++;
// wait yo pulse end and reset timer
while(TIM1->CNT < TIM3_Period-10);
TIM1->CR1 &= ~(1<<0);
TIM1->CNT = TIM3_Period-1;
// when pulse period is over clear ports
GPIOA->ODR = 0;
}