Ensure that telemetry/heartbeat frames are sent at minimum 50Hz. This is to keep sending at least something at a consistent rate to the rx even if the user disables sensors.
Simpler GPS Rescue fix
100ms interval for signalReceived failure
Faster failsafe stick response
Update and confirm unit tests work correctly
Restore invalid flight channel ability to trigger failsafe with individual timers
Set default failsafe stage 1 delay to 1.5 seconds, approximately match previous delay of 1.6s when the user selected 1.0 seconds.
Update failsafe documentation for 4.3
Arming blocked soon after Rx initialisation
Unit test fix for previous commit
Editorial changes and typo fixes
Yes, there is a reason to use DMAIRQHandler, so that the WS2811 dma
transfer complete handler can update the ws2811LedDataTransferInProgress
flag.
Potentially though the timer could be left running and restarted when
the next led strip update occurs and the dma transfer 'numbers of bytes
to transfer' field could be read instead of the
ws2811LedDataTransferInProgress flag...
Since #11380 the sx127xISR will always be called from an ISR handler so
no additional NVIC entry or ATOMIC_BLOCK is required.
Also, since sx127xISR is always called from an ISR handler it means that
there's no need to call rxSpiPollExti.
When the same exti IRQ (not exti line) is used for both the BUSY and the
DIO signals the IRQ levels cannot be different and neither can be a
higher priority than the SPI DMA.
The reason it's broken on the H7 is that the default gpio mode is
ANALOG, not INPUT like it is on other MCUs, and that the busy pin is
used before communication to the SX1280 and the busy wait function
returns to early because the GPIO IDR bit is always 0 on the H7. i.e.
not busy, when it is.
It may also be broken on other MCUs prior to this.
It's confusing to have a method called EXTIEnable that takes an argument
that can DISABLE the line.
There are usually 3 options for this:
1. Use two methods, one for enable, one for disable.
2. Use enum constants instead of the boolean argument.
3. Rename to '*Set', e.g. EXTISet(...)
This commit applies option 1 above, as it's cleaner and the most common
use case in the codebase.