From b3cac834e2ec57e68fc573caff4512627ace425c Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Sat, 28 Oct 2017 23:07:14 +0200 Subject: [PATCH] Reduced number of SPI operations when reading RF packets --- crossbow.ino | 12 ++++++++---- sbus.cpp | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/crossbow.ino b/crossbow.ino index f3a6686..afe2b32 100644 --- a/crossbow.ino +++ b/crossbow.ino @@ -277,8 +277,9 @@ void loop(void) { #ifdef DEVICE_MODE_TX if (txDeviceState.readPacket) { - if (LoRa.available()) { - qspDecodeIncomingFrame(&qsp, LoRa.read(), ppm, &rxDeviceState); + int incomingByte = LoRa.read(); + if (incomingByte > -1) { + qspDecodeIncomingFrame(&qsp, incomingByte, ppm, &rxDeviceState); } else { txDeviceState.rssi = getRadioRssi(); txDeviceState.snr = getRadioSnr(); @@ -455,9 +456,12 @@ void onReceive(int packetSize) #endif #ifdef DEVICE_MODE_RX - while (LoRa.available()) + + int incomingByte; + + while (incomingByte = LoRa.read(), incomingByte > -1) { - qspDecodeIncomingFrame(&qsp, LoRa.read(), ppm, &rxDeviceState); + qspDecodeIncomingFrame(&qsp, incomingByte, ppm, &rxDeviceState); } rxDeviceState.rssi = getRadioRssi(); diff --git a/sbus.cpp b/sbus.cpp index b31eb5c..f8ebff6 100644 --- a/sbus.cpp +++ b/sbus.cpp @@ -30,7 +30,7 @@ void sbusPreparePacket(uint8_t packet[], int channels[], bool isSignalLoss, bool * 173-1811 with middle at 992 S.BUS protocol requires */ for (uint8_t i = 0; i < SBUS_CHANNEL_NUMBER; i++) { - output[i] = mapsChannelToSbus(channels[i]); + output[i] = mapChannelToSbus(channels[i]); } uint8_t stateByte = 0x00;