summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usb-i2c-sl018/ledmatrix.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/usb-i2c-sl018/ledmatrix.c b/usb-i2c-sl018/ledmatrix.c
index 78a70a1..cc0abd2 100644
--- a/usb-i2c-sl018/ledmatrix.c
+++ b/usb-i2c-sl018/ledmatrix.c
@@ -32,9 +32,11 @@
#define LEDMATRIX_GREEN 7
#define LEDMATRIX_NUM_LEDS 6
#define LEDMATRIX_MASK 0x3F
+#define BLINK_DELAY 3
ledmatrix_mode_t mode = off;
uint8_t moving_cnt = 0;
+uint8_t wait_cnt = 0;
void ledmatrix_start_timer(void)
{
@@ -83,13 +85,17 @@ void ledmatrix_red_moving_handle(void)
void ledmatrix_red_blink_init(void)
{
+ wait_cnt = 0;
ledmatrix_red_init();
ledmatrix_start_timer();
}
void ledmatrix_red_blink_handle(void)
{
- LEDMATRIX_PORT ^= 1<<LEDMATRIX_RED;
+ if(++wait_cnt >= BLINK_DELAY) {
+ LEDMATRIX_PORT ^= 1<<LEDMATRIX_RED;
+ wait_cnt = 0;
+ }
}
@@ -118,13 +124,17 @@ void ledmatrix_green_moving_handle(void)
void ledmatrix_green_blink_init(void)
{
+ wait_cnt = 0;
ledmatrix_green_init();
ledmatrix_start_timer();
}
void ledmatrix_green_blink_handle(void)
{
- LEDMATRIX_PORT ^= 1<<LEDMATRIX_GREEN;
+ if(++wait_cnt >= BLINK_DELAY) {
+ LEDMATRIX_PORT ^= 1<<LEDMATRIX_GREEN;
+ wait_cnt = 0;
+ }
}
@@ -152,13 +162,17 @@ void ledmatrix_rg_moving_handle(void)
void ledmatrix_rg_blink_init(void)
{
+ wait_cnt = 0;
ledmatrix_red_init();
ledmatrix_start_timer();
}
void ledmatrix_rg_blink_handle(void)
{
- LEDMATRIX_PORT ^= ~(LEDMATRIX_MASK);
+ if(++wait_cnt >= BLINK_DELAY) {
+ LEDMATRIX_PORT ^= ~(LEDMATRIX_MASK);
+ wait_cnt = 0;
+ }
}