#include "SPI_Bus_Lock.h" #include #include static SemaphoreHandle_t s_spi_bus_mutex = nullptr; static volatile bool s_display_paused = false; static void ensureMutex() { if (s_spi_bus_mutex == nullptr) { s_spi_bus_mutex = xSemaphoreCreateRecursiveMutex(); } } void SPIBus_Init() { ensureMutex(); } void SPIBus_Lock() { ensureMutex(); if (s_spi_bus_mutex != nullptr) { xSemaphoreTakeRecursive(s_spi_bus_mutex, portMAX_DELAY); } } void SPIBus_Unlock() { if (s_spi_bus_mutex != nullptr) { xSemaphoreGiveRecursive(s_spi_bus_mutex); } } void SPIBus_SetDisplayPaused(bool paused) { s_display_paused = paused; } bool SPIBus_IsDisplayPaused() { return s_display_paused; }