summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018/ledmatrix.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-06 03:38:49 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-06 03:38:49 +0000
commit511e7e0b157ef838daf7c66a52c5e971317f658b (patch)
treeae2fd240e4bfb9112fdfb17f17135cd43dadee2a /usb-i2c-sl018/ledmatrix.c
parentadded 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/ledmatrix.c')
-rw-r--r--usb-i2c-sl018/ledmatrix.c22
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));
}