From d6e7c817774b2ff718a6147b0f0a40d8bcb10684 Mon Sep 17 00:00:00 2001 From: cfif Date: Wed, 17 Dec 2025 16:17:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MainModesArbiter.c | 17 ++++++++++++++++- MainModesArbiter.h | 3 +++ MainModesArbiter_InitStage.c | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 362d0b2..b82aaae 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -3,6 +3,7 @@ // #include "MainModesArbiter_Private.h" #include "stdio.h" +#include "fc7xxx_driver_rgm.h" void Mma_Init( tMma *env, @@ -42,12 +43,26 @@ static _Noreturn void Mma_Thread(tMma *env) { int16_t temp1 = 0; int16_t temp2 = 0; + if (RGM_SRS_WAKEUP_MASK == (RGM->SRS & RGM_SRS_WAKEUP_MASK)) { + LoggerInfoStatic(&env->slog.logger, LOG_TASK_ARB, "Wake up from standby") + } + for (;;) { - SystemDelayMs(1000); LoggerInfoStatic(&env->slog.logger, LOG_TASK_ARB, "Zorro...") printf("Test Test Test Test Test Test Test Test Test Test XA XA ...\n"); + GpioPinToggle(&env->gpios->led.LED1); + + SystemDelayMs(500); + +/* + if (RGM_SRS_WAKEUP_MASK == (RGM->SRS & RGM_SRS_WAKEUP_MASK)) { + } else { + SMC_SetSystemMode(SMC_MODE_STANBY_3); + } +*/ + /* if (osMutexAcquire(env->adcTask0.access, 1000) == osOK) { temp1 = get_temperature_fast(env->adcTask0.ADC_Data[0], fast_lookup_Incar, 512); diff --git a/MainModesArbiter.h b/MainModesArbiter.h index 377ffd6..ded126b 100644 --- a/MainModesArbiter.h +++ b/MainModesArbiter.h @@ -24,6 +24,7 @@ #include "Lins.h" #include "LinTasks.h" #include "AdcTasks.h" +#include "standby.h" @@ -57,6 +58,8 @@ typedef struct { tAdcTask adcTask0; tAdcTask adcTask1; + tStandBy standBy; + struct { osThreadId_t id; uint32_t stack[1024 * 1]; diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index 310cdd9..c79fa83 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -89,6 +89,7 @@ static void Mma_InitSubSystems(tMma *env) { Adc_1_Init(&env->adcTask1, &env->adcs->adc_1_IO); Adc_1_StartThread(&env->adcTask1); + StandBy_Init(&env->standBy); LoggerInfoStatic(&env->slog.logger, LOG_TASK_MAIN, "End of subsystem initialization")