From 1669b0c590e4d52af49e6b97774d2da900539dcb Mon Sep 17 00:00:00 2001 From: dario Date: Tue, 25 Mar 2025 20:24:19 +0100 Subject: [PATCH] First (unsuccessful) tests, system events not working correctly --- include/sta/tacos.hpp | 1 + include/sta/tacos/system/events.hpp | 30 ++++++++++++++--------------- src/events.cpp | 20 +++++++++---------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/include/sta/tacos.hpp b/include/sta/tacos.hpp index 99fbc2c..eef34de 100644 --- a/include/sta/tacos.hpp +++ b/include/sta/tacos.hpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/include/sta/tacos/system/events.hpp b/include/sta/tacos/system/events.hpp index e4cecec..f328415 100644 --- a/include/sta/tacos/system/events.hpp +++ b/include/sta/tacos/system/events.hpp @@ -26,7 +26,21 @@ * * @ingroup STA_RTOS_SysEvent */ -#define STA_TACOS_SYSTEM_EVENTS_STARTUP 0x100000U + +#define STA_TACOS_EVENT_SYSTEM_MASK (0xFFFE0000U >> 1) +#define STA_TACOS_EVENT_TIMER_MASK (0x7FC00000U >> 1) + +#define STA_TACOS_SYSTEM_EVENTS_STARTUP (0x01U << 30) + +#define STA_TACOS_TICK_100_Hz (0x01U << 29) +#define STA_TACOS_TICK_50_Hz (0x01U << 28) +#define STA_TACOS_TOCK_50_Hz (0x01U << 27) +#define STA_TACOS_TICK_20_Hz (0x01U << 26) +#define STA_TACOS_TOCK_20_Hz (0x01U << 25) +#define STA_TACOS_TICK_10_Hz (0x01U << 24) +#define STA_TACOS_TOCK_10_Hz (0x01U << 23) +#define STA_TACOS_TICK_1_Hz (0x01U << 22) +#define STA_TACOS_TOCK_1_Hz (0x01U << 21) namespace sta @@ -35,20 +49,6 @@ namespace sta { namespace events { - enum class Types : uint32_t - { - STARTUP = (0x01 << 0x00), - TICK_100Hz = (0x01 << 0x01), - TICK_50Hz = (0x01 << 0x02), - TOCK_50Hz = (0x01 << 0x03), - TICK_20Hz = (0x01 << 0x04), - TOCK_20Hz = (0x01 << 0x05), - TICK_10Hz = (0x01 << 0x06), - TOCK_10Hz = (0x01 << 0x07), - TICK_1Hz = (0x01 << 0x08), - TOCK_1Hz = (0x01 << 0x09) - }; - /** * @brief Initialize system events. */ diff --git a/src/events.cpp b/src/events.cpp index edf7798..c379591 100644 --- a/src/events.cpp +++ b/src/events.cpp @@ -38,36 +38,36 @@ namespace sta tickTimer = new sta::RtosTimer([](void * args) { uint32_t flags = 0x00; - flags |= (uint32_t)Types::TICK_100Hz; + flags |= STA_TACOS_TOCK_50_Hz; if (tickCounter % 20 == 0) { - flags |= (uint32_t)Types::TICK_50Hz; + flags |= STA_TACOS_TICK_50_Hz; } else { - flags |= (uint32_t)Types::TOCK_50Hz; + flags |= STA_TACOS_TOCK_50_Hz; } if (tickCounter % 50 == 0) { - flags |= (uint32_t)Types::TICK_20Hz; + flags |= STA_TACOS_TICK_20_Hz; } else if (tickCounter % 25 == 0) { - flags |= (uint32_t)Types::TOCK_20Hz; + flags |= STA_TACOS_TOCK_20_Hz; } if (tickCounter % 100) { - flags |= (uint32_t)Types::TICK_10Hz; + flags |= STA_TACOS_TICK_10_Hz; } else if (tickCounter % 50 == 0) { - flags |= (uint32_t)Types::TOCK_10Hz; + flags |= STA_TACOS_TOCK_10_Hz; } if (tickCounter % 1000) { - flags |= (uint32_t)Types::TICK_1Hz; + flags |= STA_TACOS_TICK_1_Hz; } else if (tickCounter % 500 == 0) { - flags |= (uint32_t)Types::TOCK_1Hz; + flags |= STA_TACOS_TOCK_1_Hz; } tickCounter = (tickCounter + 10) % 1000; signal(flags); - systemEvents->clear(0xFFFFFFFF); + systemEvents->clear(STA_TACOS_EVENT_TIMER_MASK); }, nullptr, true); tickTimer->start(10);