Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.

Dependencies:   lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button

Revision:
7:1887c4e4b5de
Parent:
6:91e478ee227e
Child:
8:aa1e315bf408
--- a/main.cpp	Thu May 28 15:32:34 2020 +0000
+++ b/main.cpp	Thu Jun 04 23:35:29 2020 +0000
@@ -2,13 +2,14 @@
 #include "Thread.h"
 #include "rtos_idle.h"
 #include "mbed_critical.h"
+#include "NeoPixelRing12.h"
  
 #define  USE_CRITICAL_SECTION_LOCK      1   // Set 0 to see race condition
 
-InterruptIn button(USER_BUTTON)
-;
+InterruptIn button(USER_BUTTON);
 DigitalOut myled(D8);
 DigitalOut led1(LED1);
+NeoPixelRing12 npr(D8);
 
 void bit0(){
     myled = 1; 
@@ -24,69 +25,41 @@
     wait_ns(600);
 }
 
-void rst(){
-    myled=0;
-    wait_us(70);
-}
-
-void setLights(bool state, int nbOfLeds){
-    if(state){
-        for(int i=0; i<24*nbOfLeds; i++){
-            bit1();
-        }
-    }
-    else{
-        for(int i=0; i<24*nbOfLeds; i++){
-            bit0();
-        }
-    }
+void pressed(){
+    led1=1;
 }
 
-void pressed()
-{
-    led1=1;
-    //rst();
-    //setLights(true, 1);
-    //setLights(false, 5);
-    //setLights(true, 1);
-    for(int i=0; i<16; i++){
-            bit0();
-    }
-    /*setLights(true, 1);
-    setLights(false, 1);
-    setLights(true, 1);*/
-    rst();
-
-}
-
-void released()
-
-{
-    led1=0;
+void released(){
+    npr.setLights(1, "000000");
+    npr.rst();
+    npr.setLights(12, "000000");
+    led1=true;
 }
 
 
 int main()
 {
      int i=0;
+     char blank[100] = "000000";
+     char r[100] = "ff0000";
+     char g[100] = "00ff00";
+     char b[100] = "0000ff";
      button.rise(&pressed);
      button.fall(&released);
-        /*while(1){
-            myled = 1; 
-            wait_ns(350); 
-            myled = 0;
-        }*/
-    //while(1){
         //CriticalSectionLock  lock;
         //bit0();
         //CriticalSectionLock  unlock;
-            setLights(false, 1);
-            rst();
-            setLights(false, 5);
-            setLights(true, 2);
-            setLights(true, 4);
-            wait(100.0);
-    //}
+        
+        //Une led à 0 avant d'envoyer la trame pour éviter
+        //le bug de trame
+        npr.setLights(1, "ff0000");
+        npr.rst();
+        //la trame
+        npr.setLights(5, r);
+        npr.setLights(2, g);
+        npr.setLights(4, b);
+        npr.rst();
+        wait(100.0);
 }