From ba617778ee01eaf7d0ed64709a472f082839c923 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 14 Jun 2011 00:28:16 +0200 Subject: src/common: stop led display when button is pressed --- src/common/button.c | 7 +++++++ src/common/button.h | 4 ++++ src/common/led.c | 4 ++++ 3 files changed, 15 insertions(+) (limited to 'src/common') diff --git a/src/common/button.c b/src/common/button.c index 716941d..78e5b26 100644 --- a/src/common/button.c +++ b/src/common/button.c @@ -43,3 +43,10 @@ button_wait (void) while (!IO_GET (BUTTON_IO)) ; } + +uint8_t +button_pressed (void) +{ + return !IO_GET (BUTTON_IO); +} + diff --git a/src/common/button.h b/src/common/button.h index e76211a..d98adf7 100644 --- a/src/common/button.h +++ b/src/common/button.h @@ -32,4 +32,8 @@ button_init (void); void button_wait (void); +/** Return true if button is currently pressed. */ +uint8_t +button_pressed (void); + #endif /* button_h */ diff --git a/src/common/led.c b/src/common/led.c index 194e20e..db674c4 100644 --- a/src/common/led.c +++ b/src/common/led.c @@ -26,6 +26,7 @@ #include "io.h" #include "led.h" +#include "button.h" /** Time a led is lit. */ #define LED_UP_MS 0.05 @@ -85,6 +86,9 @@ led_display (uint16_t leds, uint16_t duration) DDRB = ddrb; PORTB = portb | LED_MASK; utils_delay_ms (LED_DOWN_MS); + /* Stop now if button is pressed, it disturbs leds. */ + if (button_pressed ()) + return; } } } -- cgit v1.2.3