From 68f80504da1a457abc62f854ada9de7efd3c5b30 Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Sat, 10 Dec 2011 00:58:55 -0700 Subject: [PATCH] Fixes to pushbutton handling in main. --- main.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index e98dd04..9f910df 100644 --- a/main.c +++ b/main.c @@ -118,6 +118,7 @@ void start_fade() wht.remainder = neww - (wht.value + wht.increment * fade_steps); /* Start the fade timer */ + tmr_stop(TMR_INCOLOR); tmr_startPeriodic(TMR_FADE, 1); /* 32.768 msec */ } @@ -132,6 +133,7 @@ void turnOn() leds_set(red, grn, blu, wht); rgb_on(); start_fade(); + btn_pben(); } void turnOff() @@ -146,12 +148,14 @@ void turnOff() void pb_task() { - if (btn_pb() == BTN_PB_UP) { - speed = (speed + 1) & ~4; - tmr_stop(TMR_INCOLOR); - start_fade(); + /* Is this task running nearly continuously? */ + if (on) { + if (btn_pb() == BTN_PB_UP) { + speed = (speed + 1) & 3; + start_fade(); + } + btn_pben(); } - btn_pben(); } void rs_task() @@ -208,7 +212,6 @@ void user_boot() { dbgpin_high(); srand((adc_random() << 8) + adc_random()); - pb_task(); rs_task(); } -- 2.39.2