6 #pragma GCC optimize ("O2") 28 #if defined(BOARD_DSM_USART) 35 #if defined(BOARD_SPEKTRUM_RX_PIN) 37 memset((
void *)&
_val[0], 0,
sizeof(_val));
38 memset((
void *)&
dsm, 0,
sizeof(dsm));
50 #ifdef BOARD_SPEKTRUM_PWR_PIN 79 const uint8_t dsm_frame_size =
sizeof(
dsm.
frame);
99 uint16_t channel_count;
106 for (uint8_t i=0; i<channel_count; i++) {
107 if (values[i] != 0) {
125 uint16_t num_values=0;
129 for (uint8_t i=0; i<num_values; i++) {
130 if (values[i] != 0) {
140 uint8_t nc = num_values+1;
161 #endif // defined(BOARD_SPEKTRUM_RX_PIN) 166 #ifdef BOARD_SPEKTRUM_RX_PIN 189 for (
int i = 0; i < dsmMode; i++) {
202 #ifdef BOARD_SPEKTRUM_PWR_PIN 226 #endif // BOARD_SPEKTRUM_RX_PIN
static void _pinMode(uint8_t pin, uint8_t output)
#define BOARD_SPEKTRUM_PWR_OFF
Simple circular buffer for PEM input.
void add_dsm_uart_input()
static void _write(uint8_t pin, uint8_t value)
static uint64_t systick_uptime(void)
Returns the system uptime, in milliseconds.
#define BOARD_SPEKTRUM_PWR_PIN
int sumd_decode(uint8_t byte, uint8_t *rssi, uint8_t *rx_count, uint16_t *channel_count, uint16_t *channels, uint16_t max_chan_count)
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
void setCallback(Handler cb)
#define DSM_BIND_SIGN_MASK
static void _rc_bind(uint16_t dsmMode)
const AP_HAL::HAL & hal
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
#define BOARD_SPEKTRUM_PWR_ON
bool dsm_decode(uint64_t frame_time, const uint8_t dsm_frame[16], uint16_t *values, uint16_t *num_values, uint16_t max_values)
static void do_io_completion(uint8_t id)
static UARTDriver uartSDriver
uint32_t available() override
volatile uint8_t _channels
volatile uint16_t _val[F4Light_RC_INPUT_NUM_CHANNELS]
volatile uint64_t _last_signal
static void _delay(uint16_t ms)
uint32_t board_get_rtc_register(uint16_t reg)
void board_set_rtc_register(uint32_t sig, uint16_t reg)
#define F4Light_RC_INPUT_NUM_CHANNELS
#define FUNCTOR_BIND_MEMBER(func, rettype,...)
uint8_t partial_frame_count
static void _delay_microseconds(uint16_t us)
struct F4Light::DSM_parser::DSM dsm
bool bind(int dsmMode) const override
#define BOARD_SPEKTRUM_RX_PIN
#define DSM_BIND_SIGNATURE
static uint8_t register_io_completion(Handler handle)