diff options
author | Christian Pointner <equinox@spreadspace.org> | 2013-02-06 03:38:49 +0000 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2013-02-06 03:38:49 +0000 |
commit | 511e7e0b157ef838daf7c66a52c5e971317f658b (patch) | |
tree | ae2fd240e4bfb9112fdfb17f17135cd43dadee2a /usb-i2c-sl018 | |
parent | added blink targets for ledmatrix (diff) |
moving leds work now
git-svn-id: https://svn.spreadspace.org/avr/trunk@127 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018')
-rw-r--r-- | usb-i2c-sl018/ledmatrix.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/usb-i2c-sl018/ledmatrix.c b/usb-i2c-sl018/ledmatrix.c index c5d729a..ee057bf 100644 --- a/usb-i2c-sl018/ledmatrix.c +++ b/usb-i2c-sl018/ledmatrix.c @@ -30,9 +30,11 @@ #define LEDMATRIX_DDR DDRB #define LEDMATRIX_RED 6 #define LEDMATRIX_GREEN 7 +#define LEDMATRIX_NUM_LEDS 6 #define LEDMATRIX_MASK 0x3F ledmatrix_mode_t mode = off; +uint8_t moving_cnt = 0; void ledmatrix_start_timer(void) { @@ -65,12 +67,18 @@ void ledmatrix_red_init(void) void ledmatrix_red_moving_init(void) { - + ledmatrix_red_init(); + moving_cnt = 0; + LEDMATRIX_PORT = (LEDMATRIX_PORT & ~LEDMATRIX_MASK) | (LEDMATRIX_MASK & (1<<moving_cnt)); + ledmatrix_start_timer(); } void ledmatrix_red_moving_handle(void) { - + moving_cnt++; + if(moving_cnt >= LEDMATRIX_NUM_LEDS) + moving_cnt = 0; + LEDMATRIX_PORT = (LEDMATRIX_PORT & ~LEDMATRIX_MASK) | (LEDMATRIX_MASK & (1<<moving_cnt)); } @@ -95,12 +103,18 @@ void ledmatrix_green_init(void) void ledmatrix_green_moving_init(void) { - + ledmatrix_green_init(); + moving_cnt = 0; + LEDMATRIX_PORT = (LEDMATRIX_PORT & ~LEDMATRIX_MASK) | (LEDMATRIX_MASK & (1<<moving_cnt)); + ledmatrix_start_timer(); } void ledmatrix_green_moving_handle(void) { - + moving_cnt--; + if(moving_cnt >= LEDMATRIX_NUM_LEDS) + moving_cnt = LEDMATRIX_NUM_LEDS-1; + LEDMATRIX_PORT = (LEDMATRIX_PORT & ~LEDMATRIX_MASK) | (LEDMATRIX_MASK & (1<<moving_cnt)); } |