Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 281 → Rev 282

/PIC Stuff/PICX_12F1840_Clock/NEOPIXEL.c
45,20 → 45,32
}
}
 
void NeoPixel_Set(uint8_t index, uint8_t R, uint8_t G, uint8_t B) {
void NeoPixel_Set(uint8_t index, uint8_t R, uint8_t G, uint8_t B, uint8_t multiplier) {
uint8_t i = ((index + neopixel_data.offset) % NEOPIXEL_LENGTH);
neopixel_data.values[(i * 3) + 0] = G;
neopixel_data.values[(i * 3) + 1] = R;
neopixel_data.values[(i * 3) + 2] = B;
if (G == 0)
neopixel_data.values[(i * 3) + 0] = 0;
else
neopixel_data.values[(i * 3) + 0] = (G * multiplier) - 1;
if (R == 0)
neopixel_data.values[(i * 3) + 1] = 0;
else
neopixel_data.values[(i * 3) + 1] = (R * multiplier) - 1;
if (B == 0)
neopixel_data.values[(i * 3) + 2] = 0;
else
neopixel_data.values[(i * 3) + 2] = (B * multiplier) - 1;
}
 
void NeoPixel_Or(uint8_t index, uint8_t R, uint8_t G, uint8_t B) {
void NeoPixel_Or(uint8_t index, uint8_t R, uint8_t G, uint8_t B, uint8_t multiplier) {
uint8_t i = ((index + neopixel_data.offset) % NEOPIXEL_LENGTH);
 
neopixel_data.values[(i * 3) + 0] |= G;
neopixel_data.values[(i * 3) + 1] |= R;
neopixel_data.values[(i * 3) + 2] |= B;
if (G != 0)
neopixel_data.values[(i * 3) + 0] |= (G * multiplier) - 1;
if (R != 0)
neopixel_data.values[(i * 3) + 1] |= (R * multiplier) - 1;
if (B != 0)
neopixel_data.values[(i * 3) + 2] |= (B * multiplier) - 1;
}
 
void NeoPixel_Write_All(void) {