From f7644ea9054e8f24490f1ad62928b7371727da59 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Thu, 2 May 2013 17:53:20 +0200 Subject: digital/beacon: fix imprecised rebasing when offset is too small --- digital/beacon/src/codewheel.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'digital/beacon') diff --git a/digital/beacon/src/codewheel.c b/digital/beacon/src/codewheel.c index 73c0329f..cfa2e761 100644 --- a/digital/beacon/src/codewheel.c +++ b/digital/beacon/src/codewheel.c @@ -111,7 +111,12 @@ ISR(TIMER3_COMPA_vect) { if(codewheel_get_state() == CODEWHEEL_REQUEST_REBASE) { - OCR3A = codewheel_get_rebase_offset(); + /* if rebase offset is too short, wait 1 turn before doing it */ + if(codewheel_get_rebase_offset() < 60) + OCR3A = CODEWHEEL_CPR+codewheel_get_rebase_offset(); + else + OCR3A = codewheel_get_rebase_offset(); + codewheel_set_state(CODEWHEEL_REBASED); uprintf("Rebased\r\n"); } -- cgit v1.2.3