esp8266-ws2801d/src/ws2801.cpp

30 lines
500 B
C++

#include <SPI.h>
#include "ws2801.h"
uint8_t message[3 * NUM_MODULES];
void ws2801_init(void)
{
SPI.begin();
}
void ws2801_set_colour(uint32_t module, uint8_t red, uint8_t green, uint8_t blue)
{
message[3*module + 0] = red;
message[3*module + 1] = blue;
message[3*module + 2] = green;
}
void ws2801_send_update(void)
{
SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE0));
for(uint32_t i = 0; i < 3*NUM_MODULES; i++) {
SPI.transfer(message[i]);
}
SPI.endTransaction();
}