Fix for enable/disable FFT task.

This commit is contained in:
Blaz Kristan 2022-07-06 19:46:32 +02:00
parent 96e04f1c54
commit 377a11b160

View File

@ -1026,9 +1026,13 @@ class AudioReactive : public Usermod {
#ifdef WLED_DEBUG #ifdef WLED_DEBUG
fftTime = sampleTime = 0; fftTime = sampleTime = 0;
#endif #endif
if (init) vTaskDelete(FFT_Task); // update is about to begin, remove task to prevent crash if (init && FFT_Task) {
else { // update has failed or create task requested vTaskSuspend(FFT_Task); // update is about to begin, disable task to prevent crash
// Define the FFT Task and lock it to core 0 } else {
// update has failed or create task requested
if (FFT_Task)
vTaskResume(FFT_Task);
else
xTaskCreatePinnedToCore( xTaskCreatePinnedToCore(
FFTcode, // Function to implement the task FFTcode, // Function to implement the task
"FFT", // Name of the task "FFT", // Name of the task
@ -1036,7 +1040,8 @@ class AudioReactive : public Usermod {
NULL, // Task input parameter NULL, // Task input parameter
1, // Priority of the task 1, // Priority of the task
&FFT_Task, // Task handle &FFT_Task, // Task handle
0); // Core where the task should run 0 // Core where the task should run
);
} }
} }