The unified diff between revisions [d0420ebd..] and [4f22e7ef..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'led.c'
# # old_revision [d0420ebd87c820e33a32b29727989516e15980a8] # new_revision [4f22e7ef7d3064e3b51a5b868a4722f3f13c747b] # # patch "led.c" # from [2244b2b9d6abf2cf49ad8123596633912b1f1a90] # to [4451940c19abd23f90df9a9f1e14e01e21b8714e] # ============================================================ --- led.c 2244b2b9d6abf2cf49ad8123596633912b1f1a90 +++ led.c 4451940c19abd23f90df9a9f1e14e01e21b8714e @@ -11,13 +11,14 @@ led_pattern led_pattern_active[] = {250, bool led_next_state; led_pattern led_pattern_active[] = {250, 250, 0}; +led_pattern led_pattern_unknown[] = {100, 100, 0}; void led_set(bool on) { if (on) - FP0XVAL |= 0x04000000; + FP0XVAL &= ~0x04000000; else - FP0XVAL &= ~0x04000000; + FP0XVAL |= 0x04000000; } void led_update(void) @@ -35,7 +36,7 @@ void led_update(void) led_set(led_next_state); led_next_state = !led_next_state; - led_next_time += *led_current_pointer * TIMER_MS; + led_next_time += *led_current_pointer * TIMER0_MS; led_current_pointer++; if (*led_current_pointer == 0) led_current_pointer = led_current_pattern; @@ -43,8 +44,15 @@ void led_set_pattern(led_pattern *patter void led_set_pattern(led_pattern *pattern) { + if (led_current_pattern == pattern) + return; led_current_pattern = pattern; - led_current_pointer = pattern; +} + +void led_init(void) +{ + led_current_pattern = led_pattern_unknown; + led_current_pointer = led_pattern_unknown; led_next_state = TRUE; led_next_time = timer_read(); led_update();