driver for WS2812B LED, modified for better compatibility with LPC812 and LPC1549
Fork of wsDrive by
wsDrive.h@0:b3665f91bedc, 2014-11-05 (annotated)
- 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?
User | Revision | Line number | New 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 |