diff --git a/workspace/TS100/Core/Drivers/FUSB302/hard_reset.h b/workspace/TS100/Core/Drivers/FUSB302/hard_reset.h index c28292f1..9466b33c 100644 --- a/workspace/TS100/Core/Drivers/FUSB302/hard_reset.h +++ b/workspace/TS100/Core/Drivers/FUSB302/hard_reset.h @@ -33,7 +33,7 @@ public: private: static void Thread(const void *arg); static osThreadId TaskHandle; - static const size_t TaskStackSize = 1536 / 3; + static const size_t TaskStackSize = 1536 / 2; static uint32_t TaskBuffer[TaskStackSize]; static osStaticThreadDef_t TaskControlBlock; static uint32_t waitForEvent(uint32_t mask, uint32_t ticksToWait = diff --git a/workspace/TS100/Core/Drivers/FUSB302/int_n.cpp b/workspace/TS100/Core/Drivers/FUSB302/int_n.cpp index 5e745161..e3e7d980 100644 --- a/workspace/TS100/Core/Drivers/FUSB302/int_n.cpp +++ b/workspace/TS100/Core/Drivers/FUSB302/int_n.cpp @@ -46,7 +46,9 @@ void InterruptHandler::Thread(const void *arg) { while (true) { /* If the INT_N line is low */ if (!notifSent) { - xTaskNotifyWait(0x00, 0x0F, NULL, 25); + if (xTaskNotifyWait(0x00, 0x0F, NULL, 25) == pdPASS) { + osDelay(1); + } } notifSent = false; /* Read the FUSB302B status and interrupt registers */