From 646f54d25c27dc2619e2aa7965e0079ac7c428f9 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Sat, 23 Jun 2012 22:29:05 -0300 Subject: [PATCH] fw/sweep.c (TIMER1_OVF_vect): turn off the LEDs when done This means that the image no longer has to contain terminating all-zero rows. --- fw/sweep.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/fw/sweep.c b/fw/sweep.c index 3aac954..85ef784 100644 --- a/fw/sweep.c +++ b/fw/sweep.c @@ -49,8 +49,14 @@ ISR(TIMER1_OVF_vect) /* if at the end of the image, only update the time */ - if (curr_line == end_line) + if (curr_line == end_line) { + PORTB &= 0x3f; + PORTC = 0; + PORTD = 0; + ICR1 = 0xffff; + sweeping = 0; return; + } /* wait before starting the image */ @@ -60,6 +66,8 @@ ISR(TIMER1_OVF_vect) return; } + /* if done, lights out and slow down */ + /* output the next line */ PORTB = (PORTB & 0x3f) | (curr_line->cb & 0xc0); @@ -73,14 +81,9 @@ ISR(TIMER1_OVF_vect) else curr_line--; - /* wait until the next pixel (or slow down if we're done) */ + /* wait until the next pixel */ - if (curr_line == end_line) { - ICR1 = 0xffff; - sweeping = 0; - } else { - ICR1 = pixel_ticks; - } + ICR1 = pixel_ticks; }