driver for WS2812B LED, modified for better compatibility with LPC812 and LPC1549

Dependencies:   BurstSPI

Dependents:   RGB-balls cylon

Fork of wsDrive by Andy A

Committer:
AndyA
Date:
Wed Nov 05 16:47:48 2014 +0000
Revision:
0:b3665f91bedc
Child:
1:741864ea11d4
Initial commit. Seems to work for me, needs more comments/documentaion

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndyA 0:b3665f91bedc 1 #ifndef __wsDrive_h__
AndyA 0:b3665f91bedc 2 #define __wsDrive_h__
AndyA 0:b3665f91bedc 3
AndyA 0:b3665f91bedc 4 #include "BurstSPI.h"
AndyA 0:b3665f91bedc 5
AndyA 0:b3665f91bedc 6
AndyA 0:b3665f91bedc 7 typedef struct pixelInfo {
AndyA 0:b3665f91bedc 8 unsigned char G;
AndyA 0:b3665f91bedc 9 unsigned char R;
AndyA 0:b3665f91bedc 10 unsigned char B;
AndyA 0:b3665f91bedc 11 } pixelInfo;
AndyA 0:b3665f91bedc 12
AndyA 0:b3665f91bedc 13
AndyA 0:b3665f91bedc 14 class wsDrive : private BurstSPI
AndyA 0:b3665f91bedc 15 {
AndyA 0:b3665f91bedc 16 public:
AndyA 0:b3665f91bedc 17 wsDrive(PinName mosi, PinName miso, PinName clk);
AndyA 0:b3665f91bedc 18 void setData(pixelInfo *dataStart, uint16_t dataLen);
AndyA 0:b3665f91bedc 19 void sendData();
AndyA 0:b3665f91bedc 20
AndyA 0:b3665f91bedc 21 private:
AndyA 0:b3665f91bedc 22
AndyA 0:b3665f91bedc 23 void sendByte(unsigned char value);
AndyA 0:b3665f91bedc 24 void sendPixel(pixelInfo *pixToSend);
AndyA 0:b3665f91bedc 25
AndyA 0:b3665f91bedc 26 pixelInfo *pixArray;
AndyA 0:b3665f91bedc 27 uint16_t pixelLen;
AndyA 0:b3665f91bedc 28
AndyA 0:b3665f91bedc 29 };
AndyA 0:b3665f91bedc 30
AndyA 0:b3665f91bedc 31 #endif