Applied same to SOFT_I2C driver (but the pin config is compile-time #define)
Conflicts:
src/board.h
src/drv_i2c.h
src/drv_system.c
src/main/drivers/bus_i2c_soft.c
src/main/drivers/bus_i2c_stm32f10x.c
The timer was not being initialised correctly, it only worked by
accident due to timer configuration of other timer channels. This
explained why TIM3 didn't work in the mapping exclusion for the CC3D and
why for the LEDs to work correctly TIM2 had to be specified so that TIM3
was actually accidentally initialised still.
On the CC3D it was observed that jitters were present, this code
validates each frame.
Prior to this, on other boards (Naze32/Flip32+/Olimexino/etc) it was
observed that when using an 8 channel RX AUX5-8 would sometimes be set
due to bad PPM data.
This code fixes both issues.
This required timer overflow events to be used in the calculation of PPM
channel data.
CC3D tested, other targets may be unstable as a result. Needs further
testing.
state. Mutually exclusive with leds that show MODE.
Use blue to indicate armed, green for disarmed.
Leds not configured for ARM_STATE or MODE will be off by default.
The example combines corner LEDs with ARM_STATE and INDICATOR. This
results in the corner leds showing arm state and then being overridden
with an indicator color as needed.
Cleaned up the battery warning checking as it was being calculated twice
instead of just once per battery warning state cycle.
Updated the code so that modes are shown when disarmed. Any led's
without the MODE flag will then show the armed state. In the config in
this commit that results in the corner LEDs being GREEN when disarmed
and OFF when armed.
If a given feature or mode is off the next task is not processed in the
current loop but will be processed during the next loop iteration for
simplification, this allowed the cleanup of return values in other code.
Added documentation.
Added LED_STRIP feature, can only be enabled under certain circumstances
depending on target due to pin/timer mappings - see documentation.