diff --git a/src/drivers/stm32/tone_alarm/tone_alarm.cpp b/src/drivers/stm32/tone_alarm/tone_alarm.cpp index d94f03c948..0642182d6f 100644 --- a/src/drivers/stm32/tone_alarm/tone_alarm.cpp +++ b/src/drivers/stm32/tone_alarm/tone_alarm.cpp @@ -476,16 +476,11 @@ void ToneAlarm::next_note() if (updated) { orb_copy(ORB_ID(tune_control), _tune_control_sub, &_tune); - - if (_tunes.set_control(_tune) == 0) { - _play_tone = true; - - } else { - _play_tone = false; - } + _play_tone = _tunes.set_control(_tune) == 0; } - unsigned frequency = 0, duration = 0; + unsigned frequency = 0; + unsigned duration = 0; if (_play_tone) { _play_tone = false; @@ -516,6 +511,7 @@ void ToneAlarm::next_note() } // and arrange a callback when the note should stop + assert(duration != 0); work_queue(HPWORK, &_work, (worker_t)&ToneAlarm::next_trampoline, this, USEC2TICK(duration)); }