My Version of The LED_WS2812 Library

Dependencies:   WS2812 PixelArray

Fork of LED_WS2812 by CreaLab

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