Christmas RGB light mode

This commit is contained in:
Jack Humbert 2016-12-23 10:29:19 -05:00
parent 9675e1357f
commit cae269b08b
2 changed files with 23 additions and 1 deletions

View File

@ -449,6 +449,9 @@ void rgblight_task(void) {
} else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) {
// mode = 21 to 23, knight mode
rgblight_effect_knight(rgblight_config.mode - 21);
} else {
// mode = 24, christmas mode
rgblight_effect_christmas();
}
}
}
@ -594,4 +597,22 @@ void rgblight_effect_knight(uint8_t interval) {
}
}
void rgblight_effect_christmas(void) {
static uint16_t current_offset = 0;
static uint16_t last_timer = 0;
uint16_t hue;
uint8_t i;
if (timer_elapsed(last_timer) < 1000) {
return;
}
last_timer = timer_read();
current_offset = (current_offset + 1) % 2;
for (i = 0; i < RGBLED_NUM; i++) {
hue = 0 + ((RGBLED_NUM * (i + current_offset)) % 2) * 80;
sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
}
rgblight_set();
}
#endif

View File

@ -2,7 +2,7 @@
#define RGBLIGHT_H
#ifdef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_MODES 23
#define RGBLIGHT_MODES 24
#else
#define RGBLIGHT_MODES 1
#endif
@ -98,5 +98,6 @@ void rgblight_effect_rainbow_mood(uint8_t interval);
void rgblight_effect_rainbow_swirl(uint8_t interval);
void rgblight_effect_snake(uint8_t interval);
void rgblight_effect_knight(uint8_t interval);
void rgblight_effect_christmas(void);
#endif