Advertisement
Guest User

WS2812B

a guest
Nov 23rd, 2014
483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.64 KB | None | 0 0
  1. #include <avr/io.h>
  2.  
  3. void led(int _led, int _r, int _g, int _b);
  4. void send(void);
  5.  
  6. int leds[255][3];
  7.  
  8. int main(void)
  9. {  
  10.     DDRB |= (1 << PORTB0);
  11.  
  12.     while(1)
  13.     {
  14.         for(int l = 0; l < 255; l++)
  15.         {
  16.             led(l, 255, 0, 0);
  17.         }
  18.         send();  
  19.     }
  20. }
  21.  
  22. void led(int _led, int _r, int _g, int _b)
  23. {
  24.     leds[_led][0] = _g;
  25.     leds[_led][1] = _r;
  26.     leds[_led][2] = _b;
  27. }
  28.  
  29. void send()
  30. {
  31.     for(int l = 0; l < 255; l++)
  32.     {
  33.         for(int c = 0; c < 3; c++)
  34.         {
  35.             for(int m = 0; m < 8; m++)
  36.             {
  37.                 if(leds[l][c] & (1 << m))
  38.                 {
  39.                     PORTB |= (1 << PORTB0);
  40.                 }
  41.                 else
  42.                 {
  43.                     PORTB &= ~(1 << PORTB0);
  44.                 }
  45.             }
  46.            
  47.         }
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement