From ec0d44e1b0060e713f944041760f6f403dc9c316 Mon Sep 17 00:00:00 2001 From: Karl Knutsson Date: Thu, 4 Sep 2014 18:15:36 +0200 Subject: [PATCH] OP-1473 Fix EOF handling for R7008SB --- flight/pios/common/pios_sbus.c | 2 +- flight/pios/inc/pios_sbus_priv.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/flight/pios/common/pios_sbus.c b/flight/pios/common/pios_sbus.c index 640ddb748..69089e9cd 100644 --- a/flight/pios/common/pios_sbus.c +++ b/flight/pios/common/pios_sbus.c @@ -250,7 +250,7 @@ static void PIOS_SBus_UpdateState(struct pios_sbus_state *state, uint8_t b) state->received_data[state->byte_count - 1] = b; state->byte_count++; } else { - if (b == SBUS_EOF_BYTE || (b % SBUS_R7008SB_EOF_COUNTER_MASK) == SBUS_R7008SB_EOF_BYTE) { + if (b == SBUS_EOF_BYTE || (b & SBUS_R7008SB_EOF_COUNTER_MASK) == 0) { /* full frame received */ uint8_t flags = state->received_data[SBUS_FRAME_LENGTH - 3]; if (flags & SBUS_FLAG_FL) { diff --git a/flight/pios/inc/pios_sbus_priv.h b/flight/pios/inc/pios_sbus_priv.h index 5f104e25f..791683831 100644 --- a/flight/pios/inc/pios_sbus_priv.h +++ b/flight/pios/inc/pios_sbus_priv.h @@ -66,8 +66,7 @@ #define SBUS_FLAG_FL 0x04 #define SBUS_FLAG_FS 0x08 -#define SBUS_R7008SB_EOF_COUNTER_MASK 0xCF -#define SBUS_R7008SB_EOF_BYTE 0x04 +#define SBUS_R7008SB_EOF_COUNTER_MASK 0xCB /* * S.Bus protocol provides 16 proportional and 2 discrete channels.