From 392a10c98d2bfe94411963ff6d16030271768667 Mon Sep 17 00:00:00 2001 From: bsongis Date: Mon, 11 Mar 2013 22:21:44 +0000 Subject: [PATCH] [all] Problem with momentary switches when used in timers. Thanks Gabriel for reporting this bug! --- src/lcd.cpp | 3 +++ src/model_menus.cpp | 2 +- src/open9x.cpp | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lcd.cpp b/src/lcd.cpp index 120fdec1c..08227331d 100644 --- a/src/lcd.cpp +++ b/src/lcd.cpp @@ -894,6 +894,9 @@ void putsCurve(xcoord_t x, uint8_t y, int8_t idx, LcdFlags att) void putsTmrMode(xcoord_t x, uint8_t y, int8_t mode, LcdFlags att) { + if (mode >= TMR_VAROFS+MAX_PSWITCH+NUM_CSW) + mode++; + if (mode < 0) { mode = TMR_VAROFS - mode - 1; lcd_putcAtt(x-1*FW, y, '!', att); diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 5ecf46ed4..98529cf6c 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -839,7 +839,7 @@ void menuModelSetup(uint8_t event) div_t qr = div(timer->start, 60); switch (m_posHorz) { case 0: - CHECK_INCDEC_MODELVAR(event, timer->mode, -2*(MAX_PSWITCH+NUM_CSW)-1, TMR_VAROFS+2*(MAX_PSWITCH+NUM_CSW)); + CHECK_INCDEC_MODELVAR(event, timer->mode, -2*(MAX_PSWITCH+NUM_CSW)-1, TMR_VAROFS-1+2*(MAX_PSWITCH+NUM_CSW)); break; case 1: CHECK_INCDEC_MODELVAR_ZERO(event, qr.quot, 59); diff --git a/src/open9x.cpp b/src/open9x.cpp index 6fe109a16..74df6e72e 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -3111,7 +3111,6 @@ void doMixerCalculations() #else val >>= (RESX_SHIFT-4); // calibrate it #endif - // Timers start for (uint8_t i=0; i