From 73bf55a0b4654fa220b71118cae02d8d43a80ad6 Mon Sep 17 00:00:00 2001 From: dario Date: Wed, 27 Sep 2023 09:53:06 +0200 Subject: [PATCH] Changed timer thread priority and fixed lockout and failsafe timers --- .settings/stm32cubeide.project.prefs | 2 +- Core/Inc/FreeRTOSConfig.h | 2 +- TACOS-Demo.ioc | 3 ++- Tacos/src/statemachine.cpp | 21 +++++++++------------ 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs index 96364d8..0ad0f8c 100644 --- a/.settings/stm32cubeide.project.prefs +++ b/.settings/stm32cubeide.project.prefs @@ -1,5 +1,5 @@ 635E684B79701B039C64EA45C3F84D30=C96BA6CC9F20E1205A6EBDFF40205165 66BE74F758C12D739921AEA421D593D3=4 8DF89ED150041C4CBC7CB9A9CAA90856=D6E44E0C9E8538D2672E3627575EB9A7 -DC22A860405A8BF2F2C095E5B6529F12=B7A8998BB86F8064A3F4829332693759 +DC22A860405A8BF2F2C095E5B6529F12=D6E44E0C9E8538D2672E3627575EB9A7 eclipse.preferences.version=1 diff --git a/Core/Inc/FreeRTOSConfig.h b/Core/Inc/FreeRTOSConfig.h index bf70168..0a78574 100644 --- a/Core/Inc/FreeRTOSConfig.h +++ b/Core/Inc/FreeRTOSConfig.h @@ -92,7 +92,7 @@ /* Software timer definitions. */ #define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( 2 ) +#define configTIMER_TASK_PRIORITY ( 48 ) #define configTIMER_QUEUE_LENGTH 10 #define configTIMER_TASK_STACK_DEPTH 256 diff --git a/TACOS-Demo.ioc b/TACOS-Demo.ioc index d7c0de1..78aba71 100644 --- a/TACOS-Demo.ioc +++ b/TACOS-Demo.ioc @@ -3,11 +3,12 @@ CAD.formats= CAD.pinconfig= CAD.provider= FREERTOS.FootprintOK=true -FREERTOS.IPParameters=Tasks01,configUSE_NEWLIB_REENTRANT,configRECORD_STACK_HIGH_ADDRESS,configCHECK_FOR_STACK_OVERFLOW,Mutexes01,FootprintOK +FREERTOS.IPParameters=Tasks01,configUSE_NEWLIB_REENTRANT,configRECORD_STACK_HIGH_ADDRESS,configCHECK_FOR_STACK_OVERFLOW,Mutexes01,FootprintOK,configTIMER_TASK_PRIORITY FREERTOS.Mutexes01=uartMutex,Static,uartMutex_cb FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL FREERTOS.configCHECK_FOR_STACK_OVERFLOW=1 FREERTOS.configRECORD_STACK_HIGH_ADDRESS=1 +FREERTOS.configTIMER_TASK_PRIORITY=48 FREERTOS.configUSE_NEWLIB_REENTRANT=1 File.Version=6 KeepUserPlacement=false diff --git a/Tacos/src/statemachine.cpp b/Tacos/src/statemachine.cpp index a4a5114..7c2ab30 100644 --- a/Tacos/src/statemachine.cpp +++ b/Tacos/src/statemachine.cpp @@ -15,7 +15,9 @@ namespace sta namespace tacos { Statemachine::Statemachine() - : currentState_{STA_TACOS_INITIAL_STATE}, lockoutTimer_{[](void *){}, NULL}, failsafeTimer_{[](void *){}, NULL} + : currentState_{STA_TACOS_INITIAL_STATE}, + lockoutTimer_{[](void *){}, nullptr}, + failsafeTimer_{[](void *){}, nullptr} { STA_ASSERT(STA_TACOS_INITIAL_STATE < STA_TACOS_NUM_STATES); } @@ -24,23 +26,18 @@ namespace sta { STA_DEBUG_PRINTLN("INITIALIZING STATEMACHINE"); - /* - lockoutTimer_.setCallback([](void *) { STA_DEBUG_PRINTLN("Lockout timer triggered!"); }, NULL); - lockoutTimer_.start(1000); + lockoutTimer_.setCallback([](void *) { STA_DEBUG_PRINTLN("[LOCKOUT TIMEOUT]"); }, nullptr); + lockoutTimer_.start(5000); - failsafeTimer_.setCallback([](void *) { STA_DEBUG_PRINTLN("Failsafe timer triggered!"); }, NULL); - failsafeTimer_.start(2000); - */ + failsafeTimer_.setCallback([](void *) { STA_DEBUG_PRINTLN("[FAILSAFE TIMEOUT]"); }, nullptr); + failsafeTimer_.start(10000); } void Statemachine::func() { - // STA_DEBUG_PRINTLN("LOOPY LOOP IN STATEMACHINE"); + STA_DEBUG_PRINTLN("LOOPY LOOP IN STATEMACHINE."); - STA_DEBUG_PRINT("Failsafe timer is running: "); - STA_DEBUG_PRINTLN(failsafeTimer_.isRunning()); - - osDelay(1000); + osDelay(3000); } uint16_t Statemachine::getCurrentState() const