spacepaste

  1.  
  2. #include <util/delay.h>
  3. #include <avr/io.h>
  4. #include <avr/interrupt.h>
  5. #include "light_ws2812.h"
  6. //const uint8_t NUM_LEDS = 24; // Anzahl Leds
  7. #define NUM_LEDS 60
  8. struct cRGB leds[NUM_LEDS];
  9. void ledOff(int number) {
  10. leds[number].r = 0;
  11. leds[number].g = 0;
  12. leds[number].b = 0;
  13. ws2812_setleds(leds, NUM_LEDS);
  14. }
  15. void ledOn(int number) {
  16. leds[number].r = 125;
  17. leds[number].g = 72;
  18. leds[number].b = 15;
  19. ws2812_setleds(leds, NUM_LEDS);
  20. }
  21. void real_delay() {
  22. _delay_ms(100);
  23. }
  24. int main(void)
  25. {
  26. while(1)
  27. {
  28. ledOn(0);
  29. real_delay();
  30. ledOn(1);
  31. real_delay();
  32. ledOn(2);
  33. real_delay();
  34. // this loop turns on led 4, and turns of 4-3 = 1.....then 5,2 then, 6,3 and so on
  35. for(uint8_t step = 3; step < NUM_LEDS-2; step++) {
  36. // last led of the 3, off
  37. ledOff(step-3);
  38. real_delay();
  39. // next led on
  40. ledOn(step);
  41. real_delay();
  42. }
  43. // the last 3 on
  44. ledOn(57);
  45. real_delay();
  46. ledOn(58);
  47. real_delay();
  48. ledOn(59);
  49. // the last 3 off
  50. ledOff(60);
  51. real_delay();
  52. ledOff(59);
  53. real_delay();
  54. ledOff(58);
  55. // this for loop runs backward, like the first one
  56. for(uint8_t step = 57; step > 2; step--) {
  57. //last led On
  58. ledOn(step);
  59. real_delay();
  60. // next led on
  61. ledOff(step+3);
  62. real_delay();
  63. }
  64. }
  65. }
  66.