1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-18 22:05:17 +03:00

Fixing and unifying Serial RX initialisation. Destination arguments now

go last and each init method is passed the rxConfig.
This commit is contained in:
Dominic Clifton 2014-04-18 00:07:39 +01:00
parent f06c8bb99b
commit 6a9d38783c
8 changed files with 19 additions and 17 deletions

View file

@ -89,13 +89,13 @@ int main(void)
switch (mcfg.rxConfig.serialrx_type) { switch (mcfg.rxConfig.serialrx_type) {
case SERIALRX_SPEKTRUM1024: case SERIALRX_SPEKTRUM1024:
case SERIALRX_SPEKTRUM2048: case SERIALRX_SPEKTRUM2048:
spektrumInit(&rcReadRawFunc); spektrumInit(&mcfg.rxConfig, &rcReadRawFunc);
break; break;
case SERIALRX_SBUS: case SERIALRX_SBUS:
sbusInit(&rcReadRawFunc, &mcfg.rxConfig); sbusInit(&mcfg.rxConfig, &rcReadRawFunc);
break; break;
case SERIALRX_SUMD: case SERIALRX_SUMD:
sumdInit(&rcReadRawFunc); sumdInit(&mcfg.rxConfig, &rcReadRawFunc);
break; break;
} }
} else { // spektrum and GPS are mutually exclusive } else { // spektrum and GPS are mutually exclusive

View file

@ -176,14 +176,6 @@ void readEEPROM(void);
void writeEEPROM(uint8_t b, uint8_t updateProfile); void writeEEPROM(uint8_t b, uint8_t updateProfile);
void checkFirstTime(bool reset); void checkFirstTime(bool reset);
// spektrum
void spektrumInit(rcReadRawDataPtr *callback);
bool spektrumFrameComplete(void);
// sumd
void sumdInit(rcReadRawDataPtr *callback);
bool sumdFrameComplete(void);
// buzzer // buzzer
void buzzer(bool warn_vbat); void buzzer(bool warn_vbat);
void systemBeep(bool onoff); void systemBeep(bool onoff);

View file

@ -3,14 +3,13 @@
#include "platform.h" #include "platform.h"
#include "rx_common.h"
#include "drivers/system_common.h" #include "drivers/system_common.h"
#include "drivers/serial_common.h" #include "drivers/serial_common.h"
#include "drivers/serial_uart.h" #include "drivers/serial_uart.h"
#include "runtime_config.h" #include "runtime_config.h"
#include "rx_common.h"
#include "rx_sbus.h" #include "rx_sbus.h"
// driver for SBUS receiver using UART2 // driver for SBUS receiver using UART2
@ -31,7 +30,7 @@ static uint32_t sbusChannelData[SBUS_MAX_CHANNEL];
//rxConfig_t *rxConfig; //rxConfig_t *rxConfig;
void sbusInit(rcReadRawDataPtr *callback, rxConfig_t *rxConfig) void sbusInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback)
{ {
int b; int b;

View file

@ -1,4 +1,4 @@
#pragma once #pragma once
void sbusInit(rcReadRawDataPtr *callback, rxConfig_t *initialRxConfig); void sbusInit(rxConfig_t *initialRxConfig, rcReadRawDataPtr *callback);
bool sbusFrameComplete(void); bool sbusFrameComplete(void);

View file

@ -10,6 +10,8 @@
#include "runtime_config.h" #include "runtime_config.h"
#include "rx_common.h" #include "rx_common.h"
#include "rx_spektrum.h"
// driver for spektrum satellite receiver / sbus using UART2 (freeing up more motor outputs for stuff) // driver for spektrum satellite receiver / sbus using UART2 (freeing up more motor outputs for stuff)
@ -30,7 +32,7 @@ static uint16_t spektrumReadRawRC(rxConfig_t *rxConfig, uint8_t chan);
// external vars (ugh) // external vars (ugh)
extern int16_t failsafeCnt; extern int16_t failsafeCnt;
void spektrumInit(rxConfig_t*rxConfig, rcReadRawDataPtr *callback) void spektrumInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback)
{ {
switch (rxConfig->serialrx_type) { switch (rxConfig->serialrx_type) {
case SERIALRX_SPEKTRUM2048: case SERIALRX_SPEKTRUM2048:

4
src/rx_spektrum.h Normal file
View file

@ -0,0 +1,4 @@
#pragma once
void spektrumInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback);
bool spektrumFrameComplete(void);

View file

@ -12,6 +12,7 @@
#include "failsafe.h" #include "failsafe.h"
#include "rx_common.h" #include "rx_common.h"
#include "rx_sumd.h"
// driver for SUMD receiver using UART2 // driver for SUMD receiver using UART2
@ -25,7 +26,7 @@ static uint16_t sumdReadRawRC(rxConfig_t *rxConfig, uint8_t chan);
static uint32_t sumdChannelData[SUMD_MAX_CHANNEL]; static uint32_t sumdChannelData[SUMD_MAX_CHANNEL];
void sumdInit(rcReadRawDataPtr *callback) void sumdInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback)
{ {
core.rcvrport = uartOpen(USART2, sumdDataReceive, 115200, MODE_RX); core.rcvrport = uartOpen(USART2, sumdDataReceive, 115200, MODE_RX);
if (callback) if (callback)

4
src/rx_sumd.h Normal file
View file

@ -0,0 +1,4 @@
#pragma once
void sumdInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback);
bool sumdFrameComplete(void);