add fancy new pattern
This commit is contained in:
		@@ -5,7 +5,7 @@
 | 
				
			|||||||
void rgbyteclock(void)
 | 
					void rgbyteclock(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	rgbyteclock_rounds();
 | 
						rgbyteclock_rounds_colored();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (1) {
 | 
						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)
 | 
					void rgbyteclock_rounds_colored(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  uint16_t brightness = 0x00ff;
 | 
					  uint16_t brightness = 0x00ff;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void rgbyteclock_rounds(void);
 | 
					void rgbyteclock_rounds(void);
 | 
				
			||||||
void rgbyteclock_rounds_colored(void);
 | 
					void rgbyteclock_rounds_colored(void);
 | 
				
			||||||
 | 
					void rgbyteclock_rounds_white(void);
 | 
				
			||||||
void rgbyteclock_secwatch(void);
 | 
					void rgbyteclock_secwatch(void);
 | 
				
			||||||
void rgbyteclock_secwatch_glide(void);
 | 
					void rgbyteclock_secwatch_glide(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user