add fancy new pattern
This commit is contained in:
		@@ -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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user