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:
parent
f06c8bb99b
commit
6a9d38783c
8 changed files with 19 additions and 17 deletions
|
@ -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
|
||||||
|
|
8
src/mw.h
8
src/mw.h
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
4
src/rx_spektrum.h
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
void spektrumInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback);
|
||||||
|
bool spektrumFrameComplete(void);
|
|
@ -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
4
src/rx_sumd.h
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
void sumdInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback);
|
||||||
|
bool sumdFrameComplete(void);
|
Loading…
Add table
Add a link
Reference in a new issue