diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/common/src/Core/main.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/common/src/Core/main.c b/src/common/src/Core/main.c index 6e79078..417c7af 100644 --- a/src/common/src/Core/main.c +++ b/src/common/src/Core/main.c @@ -516,16 +516,18 @@ static void exercise_fsm(void __attribute__ ((unused))*pvParameters) } last_tm_trigger_button = tm_trigger_button; - int cw_done = !cw_psk31_busy(); - if (last_cw_done != cw_done) { + const int cw_psk31_done = !cw_psk31_busy(); + const int cw_done = cw_psk31_done || only_zero_in_audio_buffer; - // On fait le switch du cw_done vers 1 QUE si les buffers audio ont été flushés - if (!cw_done || only_zero_in_audio_buffer) { - usart_debug("In CW done %d\r\n", cw_done); - last_cw_done = cw_done; + // Set the done flag to 1 only once, when cw_done switches from 0 to 1 + if (last_cw_done != cw_done) { + usart_debug("In cw_done change %d %d\r\n", cw_done, only_zero_in_audio_buffer); + if (cw_done) { fsm_input.cw_psk31_done = cw_done; } + + last_cw_done = cw_done; } else { fsm_input.cw_psk31_done = 0; |