mca-pendel/sketches/djhgfjh/WS2812B_Atmega.c

44 lines
544 B
C

#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();
}
}
}