diff --git a/rgbyteclock.c b/rgbyteclock.c index 636f867..cfba909 100644 --- a/rgbyteclock.c +++ b/rgbyteclock.c @@ -1,16 +1,4 @@ -/* - * ---------------------------------------------------------------------------- - * "THE BEER-WARE LICENSE" (Revision 42): - * wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you think - * this stuff is worth it, you can buy me a beer in return. - * (c) 2014 Stefan Rupp - * ---------------------------------------------------------------------------- - */ - - - #include "rgbyteclock.h" #include "timer.h" #include "rtc.h" @@ -18,170 +6,18 @@ #include "ledcontroller.h" - -enum { LED_OFF, LED_GLOW, LED_S0, LED_S1, LED_S2, LED_S3, LED_S4, LED_S5}; -uint16_t led_values[] = {0x00, 0x00cf, 0x00, 0x04ff, 0x08ff, 0x10ff, 0x20ff}; - - -void rgbyteclock_rounds(void) -{ - - led_turn_all_on(); - - while (1) { - //PORTC ^= (1< 2) { color_start = 0; } - color = color_start; - for (int led=0; led<12; led++) { - color++; - switch (color) { - case 1: - led_set(led, 0x00, brightness, 0x00); - break; - case 2: - led_set(led, 0x00, 0x00, brightness); - break; - default: - color = 0; - led_set(led, brightness, 0x00, 0x00); - break; - } - led_flush(); - timer_wait(5); - } - brightness = brightness + brightness/20; - if (brightness > 0x4fff) { - brightness = 0xff; - } - - } -} - -void rgbyteclock_secwatch(void) -{ - uint8_t hours, mins; - - uint32_t t, t_last=0; - - led_turn_all_on(); - - while (1) { - t = timer_get()/1000; - if (t != t_last) { - t_last = t; - mins = t%60; - hours = t/60; - uint8_t l_mins = mins/5; - uint8_t l_hours = hours/5; - led_clear(); - if (l_mins != l_hours) { - led_set(l_mins, 0, 0x7ff, 0); - led_set(l_hours, 0, 0, 0x7ff); - } - else { - led_set(l_mins, 0, 0x7ff, 0x7ff); - } - led_flush(); - } - } -} - -void rgbyteclock_secwatch_glide(void) -{ - uint8_t hours, mins; - - uint32_t t, t_last=0; - - led_turn_all_on(); - - while (1) { - t = rtc_get(); - if (t != t_last) { - t_last = t; - mins = t%60; - hours = t/60; - uint8_t l_mins = mins/5; - uint8_t l_hours = hours/5; - uint8_t l_mins_next = l_mins+1; - uint8_t l_hours_next = l_hours+1; - - if (l_mins_next > 11) { l_mins_next = 0; } - if (l_hours_next > 11) { l_hours_next = 0; } - - uint16_t d_m1, d_m2; - uint16_t d_h1, d_h2; - - /* - d_m2 = ((mins%5)*d_bright)/4; - d_h2 = ((hours%5)*d_bright)/4; - d_m1 = ((4-(mins%5))*d_bright)/4; - d_h1 = ((4-(hours%5))*d_bright)/4; - */ - d_m2 = led_values[(mins%5)+2]; - d_h2 = led_values[(hours%5)+2]; - d_m1 = led_values[4-(mins%5)+2]; - d_h1 = led_values[4-(hours%5)+2]; - uint16_t d_dark = led_values[1]; - - led_clear(); - for (int led=0;led<12;led++) { - led_set(led, d_dark, 0, 0); - } - if (l_mins != l_hours) { - led_set(l_mins, d_dark, d_m1, 0); - led_set(l_hours, d_dark, 0, d_h1); - led_set(l_mins_next, d_dark, d_m2, 0); - led_set(l_hours_next, d_dark, 0, d_h2); - } - else { - led_set(l_mins, 0xf, d_m1, d_h1); - led_set(l_mins_next, 0xf, d_m2, d_h2); - } - led_flush(); - } - } -} - - void rgbyteclock(void) { - //rgbyteclock_rounds(); - rgbyteclock_rounds_colored(); - //rgbyteclock_secwatch(); - //rgbyteclock_secwatch_glide(); + + while (1) { + + led_set(0, 4000, 0, 0); + led_flush(); + timer_wait(500); + + led_set(1, 0, 10000, 0); + led_flush(); + } + } +