-
- #include <util/delay.h>
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #include "light_ws2812.h"
-
-
- //const uint8_t NUM_LEDS = 24; // Anzahl Leds
- #define NUM_LEDS 60
- struct cRGB leds[NUM_LEDS];
-
-
-
- void ledOff(int number) {
- leds[number].r = 0;
- leds[number].g = 0;
- leds[number].b = 0;
- ws2812_setleds(leds, NUM_LEDS);
- }
-
- void ledOn(int number) {
- leds[number].r = 125;
- leds[number].g = 72;
- leds[number].b = 15;
- ws2812_setleds(leds, NUM_LEDS);
- }
-
-
- void real_delay() {
- _delay_ms(100);
- }
-
-
- int main(void)
- {
- while(1)
- {
-
- ledOn(0);
- real_delay();
- ledOn(1);
- real_delay();
- ledOn(2);
- real_delay();
-
- // this loop turns on led 4, and turns of 4-3 = 1.....then 5,2 then, 6,3 and so on
- for(uint8_t step = 3; step < NUM_LEDS-2; step++) {
- // last led of the 3, off
- ledOff(step-3);
- real_delay();
- // next led on
- ledOn(step);
- real_delay();
- }
-
- // the last 3 on
- ledOn(57);
- real_delay();
- ledOn(58);
- real_delay();
- ledOn(59);
-
- // the last 3 off
- ledOff(60);
- real_delay();
- ledOff(59);
- real_delay();
- ledOff(58);
-
- // this for loop runs backward, like the first one
- for(uint8_t step = 57; step > 2; step--) {
- //last led On
- ledOn(step);
- real_delay();
- // next led on
- ledOff(step+3);
- real_delay();
- }
-
- }
- }
-