From a94013343029341a266633dd508f951f326173d7 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Thu, 2 Mar 2023 15:33:06 +0100 Subject: [PATCH] waters: activate using interrupt --- .../Demo/CORTEX_M3_MPS2_QEMU_GCC/main_waters.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_waters.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_waters.c index d6861e8c..542d7558 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_waters.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/main_waters.c @@ -124,11 +124,11 @@ static void prvTask1129( void * pvParameters ); #define mainTASK_90_PRIO ( tskIDLE_PRIORITY + 8 ) #define mainTASK_397_PRIO ( tskIDLE_PRIORITY + 10 ) #define mainTASK_400_PRIO ( tskIDLE_PRIORITY + 9 ) -#define mainTASK_416_PRIO ( tskIDLE_PRIORITY + 3 ) -#define mainTASK_579_PRIO ( tskIDLE_PRIORITY + 7 ) -#define mainTASK_1009_PRIO ( tskIDLE_PRIORITY + 6 ) +#define mainTASK_416_PRIO ( tskIDLE_PRIORITY + 5 ) +#define mainTASK_579_PRIO ( tskIDLE_PRIORITY + 5 ) +#define mainTASK_1009_PRIO ( tskIDLE_PRIORITY + 5 ) #define mainTASK_1107_PRIO ( tskIDLE_PRIORITY + 2 ) -#define mainTASK_1129_PRIO ( tskIDLE_PRIORITY + 4 ) +#define mainTASK_1129_PRIO ( tskIDLE_PRIORITY + 5 ) // RM with pref for short // #define mainTASK_31_PRIO ( tskIDLE_PRIORITY + 1 ) @@ -344,9 +344,9 @@ static void prvTask397( void * pvParameters ) { xTaskNotify(xTask90, x & 0x1, eSetValueWithOverwrite); // 3 different activation strategies ------------- // activate sporadically from interrupts - // ulTaskNotifyTake(pdTRUE,portMAX_DELAY); + ulTaskNotifyTake(pdTRUE,portMAX_DELAY); // activate with worst possible frequency (700us, but tick resolution is too low) - vTaskDelayUntil( &xLastWakeTime, xFrequency ); + // vTaskDelayUntil( &xLastWakeTime, xFrequency ); // wait pseudo random many ticks // vTaskDelayUntil( &xLastWakeTime, CLAMP(RNG, 1, 100) / portTICK_PERIOD_MS ); } @@ -487,7 +487,10 @@ void vWatersIdleFunction() { void isr_starter( void ) { - xTaskNotifyGive(xTask397); + puts("Interrupt"); + if (xTask397) { + vTaskNotifyGiveFromISR(xTask397, NULL); + } } /*-----------------------------------------------------------*/