add fancy new pattern
This commit is contained in:
parent
41a80b2047
commit
1af698cde1
@ -5,7 +5,7 @@
|
||||
void rgbyteclock(void)
|
||||
{
|
||||
|
||||
rgbyteclock_rounds();
|
||||
rgbyteclock_rounds_colored();
|
||||
|
||||
while (1) {
|
||||
|
||||
|
@ -52,6 +52,82 @@ void rgbyteclock_rounds(void)
|
||||
}
|
||||
|
||||
|
||||
void rgbyteclock_rounds_white(void)
|
||||
{
|
||||
uint16_t brightness = 0x1fff;
|
||||
uint16_t brightness_last = 0x1fff;
|
||||
uint8_t direction_b = 1, direction_d = 1;
|
||||
uint8_t dir_count=0, dir_steps=0;
|
||||
uint8_t color_start = 0;
|
||||
uint8_t color;
|
||||
uint8_t delay = 200, delay_last = 200;
|
||||
led_turn_all_on();
|
||||
|
||||
while (1) {
|
||||
color_start++;
|
||||
if (color_start > 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(delay);
|
||||
|
||||
#if 0
|
||||
if (direction_b) {
|
||||
brightness = brightness + brightness/16;
|
||||
if (brightness_last > brightness) {
|
||||
brightness = 0xffff;
|
||||
direction_b = 0;
|
||||
}
|
||||
brightness_last = brightness;
|
||||
}
|
||||
else {
|
||||
brightness = brightness - brightness/8;
|
||||
if (brightness < 0x00ff) {
|
||||
brightness = 0x00ff;
|
||||
direction_b = 1;
|
||||
}
|
||||
brightness_last = brightness;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (dir_count++ > dir_steps) {
|
||||
if (direction_d) {
|
||||
delay *= 0.90;
|
||||
if (delay == delay_last) { delay--; }
|
||||
if (delay < 5) {
|
||||
direction_d = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
delay *= 1.10;
|
||||
if (delay == delay_last) { delay++; }
|
||||
if (delay >= 200) {
|
||||
direction_d = 1;
|
||||
}
|
||||
}
|
||||
delay_last = delay;
|
||||
dir_count = 0;
|
||||
dir_steps = (200/delay)+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void rgbyteclock_rounds_colored(void)
|
||||
{
|
||||
uint16_t brightness = 0x00ff;
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
void rgbyteclock_rounds(void);
|
||||
void rgbyteclock_rounds_colored(void);
|
||||
void rgbyteclock_rounds_white(void);
|
||||
void rgbyteclock_secwatch(void);
|
||||
void rgbyteclock_secwatch_glide(void);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user