From 19bcf0e44ab296bb60d5ecfdac2cb6a9b85761d0 Mon Sep 17 00:00:00 2001 From: "g3gg0.de" Date: Mon, 16 Jan 2023 18:09:35 +0100 Subject: [PATCH] digital_signal: keep lock until all DMA transfers have finished --- lib/digital_signal/digital_signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/digital_signal/digital_signal.c b/lib/digital_signal/digital_signal.c index 91f5b2173..474e840a0 100644 --- a/lib/digital_signal/digital_signal.c +++ b/lib/digital_signal/digital_signal.c @@ -490,7 +490,6 @@ bool digital_sequence_send(DigitalSequence* sequence) { break; } } - FURI_CRITICAL_EXIT(); /* wait until last dma transaction was finished */ while(LL_DMA_GetDataLength(DMA1, LL_DMA_CHANNEL_2)) { @@ -498,6 +497,7 @@ bool digital_sequence_send(DigitalSequence* sequence) { digital_signal_stop_timer(); digital_signal_stop_dma(); + FURI_CRITICAL_EXIT(); /* undo previously prolonged edges */ for(uint32_t pos = 0; pos < sequence->signals_size; pos++) {