Reduced number of SPI operations when reading RF packets

This commit is contained in:
Pawel Spychalski (DzikuVx)
2017-10-28 23:07:14 +02:00
parent 72cb29eca2
commit b3cac834e2
2 changed files with 9 additions and 5 deletions

View File

@@ -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();

View File

@@ -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;