application: better new hour animation
This commit is contained in:
parent
0cbaf714d2
commit
4994c6a77d
|
@ -344,10 +344,26 @@ static void clock_animate_time(uint32_t time)
|
||||||
*/
|
*/
|
||||||
static void clock_hours(void)
|
static void clock_hours(void)
|
||||||
{
|
{
|
||||||
for (uint16_t i=0; i<512; i++) { // fade in and out
|
for (uint16_t i=0; i<255; i++) { // fade out
|
||||||
|
for (uint16_t led=0; led<LED_WS2812B_LEDS; led++) { // fade minutes out
|
||||||
|
if (clock_leds[led*3+1]) {
|
||||||
|
clock_leds[led*3+1] -= 1; // fade minutes out (green)
|
||||||
|
}
|
||||||
|
if (clock_leds[led*3+0]) {
|
||||||
|
clock_leds[led*3+0] -= 1; // fade seconds out (red)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clock_leds_set(); // set the colors of all LEDs
|
||||||
|
led_ws2812b_transmit(); // transmit set color
|
||||||
|
// delay some time for the animation
|
||||||
|
for (uint32_t j=0; j<40000; j++) {
|
||||||
|
__asm__("nop");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (uint16_t i=0; i<512; i++) { // fade hour marks in and out
|
||||||
uint8_t brightness = (i>255 ? 512-i-1 : i); // get fade brightness
|
uint8_t brightness = (i>255 ? 512-i-1 : i); // get fade brightness
|
||||||
for (uint8_t hour=0; hour<12; hour++) { // set all hour colors
|
for (uint8_t hour=0; hour<12; hour++) { // set all hour colors
|
||||||
uint16_t led = LED_WS2812B_LEDS/12*hour; // get LED four hour mark
|
uint16_t led = LED_WS2812B_LEDS*hour/12; // get LED four hour mark
|
||||||
clock_leds[led*3+0] = brightness; // set brightness
|
clock_leds[led*3+0] = brightness; // set brightness
|
||||||
clock_leds[led*3+1] = brightness; // set brightness
|
clock_leds[led*3+1] = brightness; // set brightness
|
||||||
clock_leds[led*3+2] = brightness; // set brightness
|
clock_leds[led*3+2] = brightness; // set brightness
|
||||||
|
|
Loading…
Reference in New Issue