diff options
| author | hathach <[email protected]> | 2019-08-31 17:39:47 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2019-08-31 17:52:24 +0700 |
| commit | c70c61ce2690be513c1399381b8fe796b05dbec9 (patch) | |
| tree | f38d33df663bc846b12dc75c77246410aeec43b6 /examples | |
| parent | b7dbc98ab1ed7c8739ec89b5a3eeaea052b33d8a (diff) | |
add button read to board_test example
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/device/board_test/src/main.c | 45 |
1 files changed, 17 insertions, 28 deletions
diff --git a/examples/device/board_test/src/main.c b/examples/device/board_test/src/main.c index f6066a4f1..0126110ed 100644 --- a/examples/device/board_test/src/main.c +++ b/examples/device/board_test/src/main.c @@ -34,45 +34,34 @@ //--------------------------------------------------------------------+ /* Blink pattern - * - 250 ms : device not mounted - * - 1000 ms : device mounted - * - 2500 ms : device is suspended + * - 250 ms : button is not pressed + * - 1000 ms : button is pressed (and hold) */ enum { - BLINK_NOT_MOUNTED = 250, - BLINK_MOUNTED = 1000, - BLINK_SUSPENDED = 2500, + BLINK_PRESSED = 250, + BLINK_UNPRESSED = 1000 }; -static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED; - -void led_blinking_task(void); - -/*------------- MAIN -------------*/ int main(void) { board_init(); + uint32_t start_ms = 0; + bool led_state = false; + while (1) { - led_blinking_task(); - } - - return 0; -} + uint32_t interval_ms = board_button_read() ? BLINK_PRESSED : BLINK_UNPRESSED; -//--------------------------------------------------------------------+ -// BLINKING TASK -//--------------------------------------------------------------------+ -void led_blinking_task(void) -{ - static uint32_t start_ms = 0; - static bool led_state = false; + // Blink every interval ms + if ( !(board_millis() - start_ms < interval_ms) ) + { + start_ms = board_millis(); - // Blink every interval ms - if ( board_millis() - start_ms < blink_interval_ms) return; // not enough time - start_ms += blink_interval_ms; + board_led_write(led_state); + led_state = 1 - led_state; // toggle + } + } - board_led_write(led_state); - led_state = 1 - led_state; // toggle + return 0; } |
