Refactor beeper (#13492)
commit3094dd6766557b365b0065a9042aadf5e08af4f8
authorPetr Ledvina <ledvinap@gmail.com>
Thu, 16 May 2024 17:54:17 +0000 (16 19:54 +0200)
committerGitHub <noreply@github.com>
Thu, 16 May 2024 17:54:17 +0000 (16 19:54 +0200)
treeff289c7536a0ad591896a6c799e85a8f8f0bee28
parent9d4ebda2eb5383b7b32f9070de4df8d2ca626633
Refactor beeper (#13492)

* Beeper - improve/fix beeper sequencing

- beeperSequenceAdvance is used to advance beeperPos
- sequences starting with 0 (delay first) are handled correctly
- 'empty' beeper states are supressed
- leds do blink beeper sequence, even when beeper is silenced

* Beeper - refactor beep_multiBeeps

- simpler length definition
- helpper function to simplify beep generation

* Beeper - refactor beeperTable

Refuse modes where beeperTableEntry->sequence is NULL
Rest of code is refactored without functional changes

* Beeper - improve micros() overflow handling + minor refactoring

- beeperNextToggleTime==0 when not enabled
- lastDshotBeaconCommandTimeUs is updated during DSHOT_BEACON_GUARD_DELAY_US phase
- DSHOT_BEACON_ALLOWED_MODES instead of explicit tests

* Beeper - minor refactor

- improve comments
- add STATIC_ASSERT
- reformat some code
- move #ifdef to better follow semantic structure
- return unsigned from BEEPER_GET_FLAG

* fixup! Beeper - minor refactor

---------

Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
src/main/io/beeper.c
src/main/io/beeper.h