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) {
case SERIALRX_SPEKTRUM1024:
case SERIALRX_SPEKTRUM2048:
spektrumInit(&rcReadRawFunc);
spektrumInit(&mcfg.rxConfig, &rcReadRawFunc);
break;
case SERIALRX_SBUS:
sbusInit(&rcReadRawFunc, &mcfg.rxConfig);
sbusInit(&mcfg.rxConfig, &rcReadRawFunc);
break;
case SERIALRX_SUMD:
sumdInit(&rcReadRawFunc);
sumdInit(&mcfg.rxConfig, &rcReadRawFunc);
break;
}
} 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 checkFirstTime(bool reset);
// spektrum
void spektrumInit(rcReadRawDataPtr *callback);
bool spektrumFrameComplete(void);
// sumd
void sumdInit(rcReadRawDataPtr *callback);
bool sumdFrameComplete(void);
// buzzer
void buzzer(bool warn_vbat);
void systemBeep(bool onoff);

View File

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

View File

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

View File

@ -10,6 +10,8 @@
#include "runtime_config.h"
#include "rx_common.h"
#include "rx_spektrum.h"
// 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)
extern int16_t failsafeCnt;
void spektrumInit(rxConfig_t*rxConfig, rcReadRawDataPtr *callback)
void spektrumInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback)
{
switch (rxConfig->serialrx_type) {
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 "rx_common.h"
#include "rx_sumd.h"
// 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];
void sumdInit(rcReadRawDataPtr *callback)
void sumdInit(rxConfig_t *rxConfig, rcReadRawDataPtr *callback)
{
core.rcvrport = uartOpen(USART2, sumdDataReceive, 115200, MODE_RX);
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);