From 6972c29813d435b40dd56c66fc5a5f3c52a21e14 Mon Sep 17 00:00:00 2001 From: Brian Webb Date: Tue, 25 Sep 2012 18:10:15 -0700 Subject: [PATCH] RFM22B: Added check for timeout wating for sync on receive. This virtually eliminates the number of timeouts. --- flight/PiOS/Common/pios_rfm22b.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/flight/PiOS/Common/pios_rfm22b.c b/flight/PiOS/Common/pios_rfm22b.c index b0f321a7b..5f95ecb39 100644 --- a/flight/PiOS/Common/pios_rfm22b.c +++ b/flight/PiOS/Common/pios_rfm22b.c @@ -835,6 +835,7 @@ static void PIOS_RFM22B_Task(void *parameters) } else { + rfm22b_dev->resets = rfm22b_dev->state; enum pios_rfm22b_event event = RFM22B_EVENT_TIMEOUT; while(event != RFM22B_EVENT_NUM_EVENTS) event = rfm22_process_state_transition(rfm22b_dev, event); @@ -1400,6 +1401,11 @@ static enum pios_rfm22b_event rfm22_detectSync(struct pios_rfm22b_dev *rfm22b_de return RFM22B_EVENT_SYNC_DETECTED; } + else if (rfm22b_dev->int_status2 & !RFM22_is2_ipreaval) + { + // Waiting for sync timed out. + return RFM22B_EVENT_TX_START; + } return RFM22B_EVENT_NUM_EVENTS; }