Обновление

This commit is contained in:
cfif 2026-01-15 12:08:29 +03:00
parent 3f6b5f4e00
commit 890f4c2ef5
1 changed files with 26 additions and 10 deletions

View File

@ -39,6 +39,9 @@ void Mma_Init(
static _Noreturn void Mma_Thread(tMma *env) { static _Noreturn void Mma_Thread(tMma *env) {
// Инициализация периферийных интерфейсов
InitPeripheralInterfaces();
// Запуск устройства // Запуск устройства
Mma_InitStage(env); Mma_InitStage(env);
@ -58,14 +61,27 @@ static _Noreturn void Mma_Thread(tMma *env) {
bool isActuatorWorkBusy = false; bool isActuatorWorkBusy = false;
// env->pwms->pwmIo.run(env->pwms->pwmIo.env);
// GpioPinSet(&env->gpios->led.LED1, true);
// GpioPinSet(&env->gpios->led.LED1, false);
env->pwms->pwmIo.run(env->pwms->pwmIo.env);
bool busy = true; bool busy = true;
for (;;) { for (;;) {
env->pwms->pwmIo.setActivePercent(env->pwms->pwmIo.env, 77);
SystemDelayMs(10);
uint8_t pwm = env->pwms->pwmCaptureIO.getPwm(env->pwms->pwmCaptureIO.env);
LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "PWM = %d", pwm)
env->pwms->pwmIo.setActivePercent(env->pwms->pwmIo.env, 22);
SystemDelayMs(10);
pwm = env->pwms->pwmCaptureIO.getPwm(env->pwms->pwmCaptureIO.env);
LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "PWM = %d", pwm)
if (osMutexAcquire(env->linTaskActuator0.access, 5000) == osOK) { if (osMutexAcquire(env->linTaskActuator0.access, 5000) == osOK) {
@ -94,13 +110,13 @@ static _Noreturn void Mma_Thread(tMma *env) {
env->linTaskActuator0.linCommandActuator[i].Speed_SET = env->rtY_local.Out1.Speed_SET[i]; env->linTaskActuator0.linCommandActuator[i].Speed_SET = env->rtY_local.Out1.Speed_SET[i];
env->linTaskActuator0.linCommandActuator[i].Coils_Stop_SET = env->rtY_local.Out1.Coils_Stop_SET[i]; env->linTaskActuator0.linCommandActuator[i].Coils_Stop_SET = env->rtY_local.Out1.Coils_Stop_SET[i];
env->rtU_local.in_CPOS_ALL_Ch0[i] = (int16_t)env->linTaskActuator0.linStateActuator[i].CPOS_ALL; env->rtU_local.in_CPOS_ALL_Ch0[i] = (int16_t) env->linTaskActuator0.linStateActuator[i].CPOS_ALL;
env->rtU_local.in_Act_Emrf_Slave_Ch0[i] = (int8_t)env->linTaskActuator0.linStateActuator[i].Emrf_Slave; env->rtU_local.in_Act_Emrf_Slave_Ch0[i] = (int8_t) env->linTaskActuator0.linStateActuator[i].Emrf_Slave;
env->rtU_local.in_Mode_Slave_Ch0[i] = (int8_t)env->linTaskActuator0.linStateActuator[i].Mode_Slave; env->rtU_local.in_Mode_Slave_Ch0[i] = (int8_t) env->linTaskActuator0.linStateActuator[i].Mode_Slave;
env->rtU_local.in_Act_Err1_Supply_Ch0[i] = (int8_t)env->linTaskActuator0.linStateActuator[i].Error1_Supply_Slave; env->rtU_local.in_Act_Err1_Supply_Ch0[i] = (int8_t) env->linTaskActuator0.linStateActuator[i].Error1_Supply_Slave;
env->rtU_local.in_Act_Err2_Communication_Ch0[i] = (int8_t)env->linTaskActuator0.linStateActuator[i].Error2_Communication_Slave; env->rtU_local.in_Act_Err2_Communication_Ch0[i] = (int8_t) env->linTaskActuator0.linStateActuator[i].Error2_Communication_Slave;
env->rtU_local.in_Act_Err3_Temperature_Ch0[i] = (int8_t)env->linTaskActuator0.linStateActuator[i].Error3_Temperature_Slave; env->rtU_local.in_Act_Err3_Temperature_Ch0[i] = (int8_t) env->linTaskActuator0.linStateActuator[i].Error3_Temperature_Slave;
env->rtU_local.in_Act_Err4_Permanent_Electrical_Ch0[i] = (int8_t)env->linTaskActuator0.linStateActuator[i].Error4_Permanent_Electrical_Slave; env->rtU_local.in_Act_Err4_Permanent_Electrical_Ch0[i] = (int8_t) env->linTaskActuator0.linStateActuator[i].Error4_Permanent_Electrical_Slave;
env->rtU_local.in_Act_Stall_Slave_Ch0[i] = env->linTaskActuator0.linStateActuator[i].Stall_Slave; env->rtU_local.in_Act_Stall_Slave_Ch0[i] = env->linTaskActuator0.linStateActuator[i].Stall_Slave;
env->rtU_local.in_Act_Reset_Ch0[i] = env->linTaskActuator0.linStateActuator[i].Reset_Slave; env->rtU_local.in_Act_Reset_Ch0[i] = env->linTaskActuator0.linStateActuator[i].Reset_Slave;
} }
@ -133,7 +149,7 @@ static _Noreturn void Mma_Thread(tMma *env) {
isActuatorWorkBusy = true; isActuatorWorkBusy = true;
// Сброс STALL в состоянии актуатор и локальном состоянии // Сброс STALL в состоянии актуатор и локальном состоянии
resetStall(&env->linTaskActuator0, (uint8_t *)env->rtU_local.in_Act_Stall_Slave_Ch0); resetStall(&env->linTaskActuator0, (uint8_t *) env->rtU_local.in_Act_Stall_Slave_Ch0);
// Копирование команд // Копирование команд
for (uint8_t i = 0; i < 9; ++i) { for (uint8_t i = 0; i < 9; ++i) {