WS2822S

Committer:
zgtk_r
Date:
Tue Mar 13 14:25:02 2018 +0000
Revision:
0:2fc093733833
for WS2822S

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zgtk_r 0:2fc093733833 1 #pragma once
zgtk_r 0:2fc093733833 2
zgtk_r 0:2fc093733833 3 #include "mbed.h"
zgtk_r 0:2fc093733833 4
zgtk_r 0:2fc093733833 5 // WS2822S RGB LED control class
zgtk_r 0:2fc093733833 6 // by tessecraft R 2018.03.12
zgtk_r 0:2fc093733833 7
zgtk_r 0:2fc093733833 8 class WS2822S_Ctrl
zgtk_r 0:2fc093733833 9 {
zgtk_r 0:2fc093733833 10 private:
zgtk_r 0:2fc093733833 11 // MTBP:H → BREAK:L → MAB:H → (FirstFrame all Low) → Data 8bit → ... MTBP:H → BREAK:L → MAB:H → ...
zgtk_r 0:2fc093733833 12
zgtk_r 0:2fc093733833 13 // COLOR Timing names (unit : us)
zgtk_r 0:2fc093733833 14 #define C_MTBP (1000)
zgtk_r 0:2fc093733833 15 #define C_BREAK (88)
zgtk_r 0:2fc093733833 16 #define C_MAB (8)
zgtk_r 0:2fc093733833 17 // Address Timing names
zgtk_r 0:2fc093733833 18 #define A_MTBP (88)
zgtk_r 0:2fc093733833 19 #define A_BREAK (5000)
zgtk_r 0:2fc093733833 20 #define A_MAB (8)
zgtk_r 0:2fc093733833 21 // common StopBit
zgtk_r 0:2fc093733833 22 #define STOP_BIT (8)
zgtk_r 0:2fc093733833 23 private:
zgtk_r 0:2fc093733833 24 // pin
zgtk_r 0:2fc093733833 25 DigitalOut ColorPin;
zgtk_r 0:2fc093733833 26 DigitalOut AddressPin;
zgtk_r 0:2fc093733833 27 private:
zgtk_r 0:2fc093733833 28 // pixcel NUM
zgtk_r 0:2fc093733833 29 int PixcelNum;
zgtk_r 0:2fc093733833 30 // display data
zgtk_r 0:2fc093733833 31 uint8_t **Display;
zgtk_r 0:2fc093733833 32 private:
zgtk_r 0:2fc093733833 33 // Expansion DMX512 protocol
zgtk_r 0:2fc093733833 34 void PutDataHeader(int MTBP, int BREAK, int MAB, DigitalOut* pin, bool AddressHigh = false);
zgtk_r 0:2fc093733833 35 // Color or Address data out
zgtk_r 0:2fc093733833 36 void PutDataHeader(bool AddressHeader = false);
zgtk_r 0:2fc093733833 37 // data put
zgtk_r 0:2fc093733833 38 void DataPut8(uint8_t data, DigitalOut* pin);
zgtk_r 0:2fc093733833 39 public:
zgtk_r 0:2fc093733833 40 WS2822S_Ctrl(PinName ColorPinName, PinName AddressPinName, int PixcelNum);
zgtk_r 0:2fc093733833 41 ~WS2822S_Ctrl();
zgtk_r 0:2fc093733833 42 public:
zgtk_r 0:2fc093733833 43 // SetPixcelData
zgtk_r 0:2fc093733833 44 void SetColor(int pos, uint8_t R, uint8_t G, uint8_t B);
zgtk_r 0:2fc093733833 45 // Clear Setted color
zgtk_r 0:2fc093733833 46 void ClearColor(uint8_t R = 0, uint8_t G = 0, uint8_t B = 0);
zgtk_r 0:2fc093733833 47 // Output Data
zgtk_r 0:2fc093733833 48 void OutputData();
zgtk_r 0:2fc093733833 49 public:
zgtk_r 0:2fc093733833 50 // WriteAddress
zgtk_r 0:2fc093733833 51 void OutputAddress();
zgtk_r 0:2fc093733833 52 };