Better alignment of serial and SPI receiver code
This commit is contained in:
parent
c44e0796ae
commit
1273ce8923
|
@ -32,6 +32,7 @@
|
||||||
#include "drivers/rx_xn297.h"
|
#include "drivers/rx_xn297.h"
|
||||||
#include "drivers/system.h"
|
#include "drivers/system.h"
|
||||||
|
|
||||||
|
#include "rx/rx.h"
|
||||||
#include "rx/rx_spi.h"
|
#include "rx/rx_spi.h"
|
||||||
#include "rx/nrf24_cx10.h"
|
#include "rx/nrf24_cx10.h"
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include "drivers/rx_xn297.h"
|
#include "drivers/rx_xn297.h"
|
||||||
#include "drivers/system.h"
|
#include "drivers/system.h"
|
||||||
|
|
||||||
|
#include "rx/rx.h"
|
||||||
#include "rx/rx_spi.h"
|
#include "rx/rx_spi.h"
|
||||||
#include "rx/nrf24_h8_3d.h"
|
#include "rx/nrf24_h8_3d.h"
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "drivers/rx_nrf24l01.h"
|
#include "drivers/rx_nrf24l01.h"
|
||||||
#include "drivers/system.h"
|
#include "drivers/system.h"
|
||||||
|
|
||||||
|
#include "rx/rx.h"
|
||||||
#include "rx/rx_spi.h"
|
#include "rx/rx_spi.h"
|
||||||
#include "rx/nrf24_inav.h"
|
#include "rx/nrf24_inav.h"
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "drivers/rx_nrf24l01.h"
|
#include "drivers/rx_nrf24l01.h"
|
||||||
#include "drivers/system.h"
|
#include "drivers/system.h"
|
||||||
|
|
||||||
|
#include "rx/rx.h"
|
||||||
#include "rx/rx_spi.h"
|
#include "rx/rx_spi.h"
|
||||||
#include "rx/nrf24_syma.h"
|
#include "rx/nrf24_syma.h"
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "drivers/rx_nrf24l01.h"
|
#include "drivers/rx_nrf24l01.h"
|
||||||
#include "drivers/system.h"
|
#include "drivers/system.h"
|
||||||
|
|
||||||
|
#include "rx/rx.h"
|
||||||
#include "rx/rx_spi.h"
|
#include "rx/rx_spi.h"
|
||||||
#include "rx/nrf24_v202.h"
|
#include "rx/nrf24_v202.h"
|
||||||
|
|
||||||
|
|
|
@ -200,8 +200,7 @@ void rxInit(const rxConfig_t *rxConfig, const modeActivationCondition_t *modeAct
|
||||||
#ifdef USE_RX_SPI
|
#ifdef USE_RX_SPI
|
||||||
if (feature(FEATURE_RX_SPI)) {
|
if (feature(FEATURE_RX_SPI)) {
|
||||||
rxRefreshRate = 10000;
|
rxRefreshRate = 10000;
|
||||||
const rx_spi_type_e spiType = feature(FEATURE_SOFTSPI) ? RX_SPI_SOFTSPI : RX_SPI_HARDSPI;
|
const bool enabled = rxSpiInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
|
||||||
const bool enabled = rxSpiInit(spiType, rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
|
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
featureClear(FEATURE_RX_SPI);
|
featureClear(FEATURE_RX_SPI);
|
||||||
rcReadRawFunc = nullReadRawRC;
|
rcReadRawFunc = nullReadRawRC;
|
||||||
|
@ -354,11 +353,12 @@ bool rxUpdate(uint32_t currentTime)
|
||||||
|
|
||||||
#ifdef USE_RX_SPI
|
#ifdef USE_RX_SPI
|
||||||
if (feature(FEATURE_RX_SPI)) {
|
if (feature(FEATURE_RX_SPI)) {
|
||||||
rxDataReceived = rxSpiDataReceived();
|
const uint8_t frameStatus = rxSpiFrameStatus();
|
||||||
if (rxDataReceived) {
|
if (frameStatus & RX_FRAME_COMPLETE) {
|
||||||
rxSignalReceived = true;
|
rxDataReceived = true;
|
||||||
rxIsInFailsafeMode = false;
|
rxIsInFailsafeMode = false;
|
||||||
needRxSignalBefore = currentTime + DELAY_10_HZ;
|
rxSignalReceived = true;
|
||||||
|
needRxSignalBefore = currentTime + DELAY_5_HZ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
|
|
||||||
#include "drivers/rx_nrf24l01.h"
|
#include "drivers/rx_nrf24l01.h"
|
||||||
|
|
||||||
|
#include "config/config.h"
|
||||||
|
#include "config/feature.h"
|
||||||
|
|
||||||
#include "rx/rx.h"
|
#include "rx/rx.h"
|
||||||
#include "rx/rx_spi.h"
|
#include "rx/rx_spi.h"
|
||||||
#include "rx/nrf24_cx10.h"
|
#include "rx/nrf24_cx10.h"
|
||||||
|
@ -110,21 +114,23 @@ STATIC_UNIT_TESTED bool rxSpiSetProtocol(rx_spi_protocol_e protocol)
|
||||||
* Called from updateRx in rx.c, updateRx called from taskUpdateRxCheck.
|
* Called from updateRx in rx.c, updateRx called from taskUpdateRxCheck.
|
||||||
* If taskUpdateRxCheck returns true, then taskUpdateRxMain will shortly be called.
|
* If taskUpdateRxCheck returns true, then taskUpdateRxMain will shortly be called.
|
||||||
*/
|
*/
|
||||||
bool rxSpiDataReceived(void)
|
uint8_t rxSpiFrameStatus(void)
|
||||||
{
|
{
|
||||||
if (protocolDataReceived(rxSpiPayload) == RX_SPI_RECEIVED_DATA) {
|
if (protocolDataReceived(rxSpiPayload) == RX_SPI_RECEIVED_DATA) {
|
||||||
rxSpiNewPacketAvailable = true;
|
rxSpiNewPacketAvailable = true;
|
||||||
return true;
|
return RX_FRAME_COMPLETE;
|
||||||
}
|
}
|
||||||
return false;
|
return RX_FRAME_PENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set and initialize the RX protocol
|
* Set and initialize the RX protocol
|
||||||
*/
|
*/
|
||||||
bool rxSpiInit(rx_spi_type_e spiType, const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback)
|
bool rxSpiInit(const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback)
|
||||||
{
|
{
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|
||||||
|
const rx_spi_type_e spiType = feature(FEATURE_SOFTSPI) ? RX_SPI_SOFTSPI : RX_SPI_HARDSPI;
|
||||||
rxSpiDeviceInit(spiType);
|
rxSpiDeviceInit(spiType);
|
||||||
if (rxSpiSetProtocol(rxConfig->rx_spi_protocol)) {
|
if (rxSpiSetProtocol(rxConfig->rx_spi_protocol)) {
|
||||||
protocolInit(rxConfig, rxRuntimeConfig);
|
protocolInit(rxConfig, rxRuntimeConfig);
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "rx/rx.h"
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NRF24RX_V202_250K = 0,
|
NRF24RX_V202_250K = 0,
|
||||||
NRF24RX_V202_1M,
|
NRF24RX_V202_1M,
|
||||||
|
@ -70,7 +68,5 @@ typedef enum {
|
||||||
#define RC_CHANNEL_HEADLESS RC_SPI_AUX5
|
#define RC_CHANNEL_HEADLESS RC_SPI_AUX5
|
||||||
#define RC_CHANNEL_RTH RC_SPI_AUX6 // return to home
|
#define RC_CHANNEL_RTH RC_SPI_AUX6 // return to home
|
||||||
|
|
||||||
bool rxSpiDataReceived(void);
|
uint8_t rxSpiFrameStatus(void);
|
||||||
struct rxConfig_s;
|
bool rxSpiInit(const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback);
|
||||||
struct rxRuntimeConfig_s;
|
|
||||||
bool rxSpiInit(rx_spi_type_e spiType, const struct rxConfig_s *rxConfig, struct rxRuntimeConfig_s *rxRuntimeConfig, rcReadRawDataPtr *callback);
|
|
||||||
|
|
|
@ -81,8 +81,8 @@
|
||||||
#define USE_RX_SYMA
|
#define USE_RX_SYMA
|
||||||
#define USE_RX_V202
|
#define USE_RX_V202
|
||||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5
|
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5
|
||||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5C
|
#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5C
|
||||||
#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_INAV
|
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_INAV
|
||||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_H8_3D
|
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_H8_3D
|
||||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_CX10A
|
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_CX10A
|
||||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_V202_1M
|
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_V202_1M
|
||||||
|
|
Loading…
Reference in New Issue