#include "WS2812B_Atmega.h" inline void writeZero() { DATAPIN = 1; wait6; DATAPIN = 0; wait15; } inline void writeOne() { DATAPIN = 1; wait14; DATAPIN = 0; wait8; } void writeRGB(uint8_t r, uint8_t g, uint8_t b) { int i; for( i = 128; i > 0; i >>= 1 ) { if( g & i ){ writeOne(); } else { writeZero(); } } for( i = 128; i > 0; i >>= 1 ) { if( r & i ){ writeOne(); } else { writeZero(); } } for( i = 128; i > 0; i >>= 1 ) { if( b & i ){ writeOne(); } else { writeZero(); } } }