My Version of The LED_WS2812 Library
Dependencies: WS2812 PixelArray
Fork of LED_WS2812 by
Diff: LED_WS2812.cpp
- Revision:
- 4:15b992a39c77
- Parent:
- 3:ba8dc8811164
- Child:
- 6:c9955bf67a3e
--- a/LED_WS2812.cpp Thu Nov 02 09:56:59 2017 +0000 +++ b/LED_WS2812.cpp Thu Nov 02 12:01:51 2017 +0000 @@ -34,6 +34,8 @@ ResetColor(); rotationState = false; rotationPosition = nbLeds-1; + blinkState = false; + blinkONOFF = false; intensity = 0xff; }; @@ -162,6 +164,7 @@ void LED_WS2812::StopRotation() { if(rotationState==true) { rotationState = false; + rotationPosition = 0; LEDSystemTick.detach(); } } @@ -170,5 +173,36 @@ rotationPosition--; if (rotationPosition == -1) rotationPosition = nbLeds-1; - __writeBuf(rotationPosition); + if(!blinkState) __writeBuf(rotationPosition); +} + + +void LED_WS2812::StartBlink(float interval) { + if(blinkState==false) { + blinkState = true; + LEDBlinkSystemTick.attach_us(this, &LED_WS2812::Blink, interval*1000000); + } +} + + +void LED_WS2812::StopBlink() { + if(blinkState==true) { + blinkState = false; + LEDBlinkSystemTick.detach(); + } +} + +void LED_WS2812::Blink() { + blinkONOFF = !blinkONOFF; + if (blinkONOFF) + __writeBuf(rotationPosition); + else { + ws->useII(WS2812::GLOBAL); + ws->setII(0); + __writeBuf(rotationPosition); + ws->useII(WS2812::PER_PIXEL); + ws->setII(intensity); + + } + } \ No newline at end of file