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

Dependencies:   lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button

Committer:
Rhamao
Date:
Thu Jun 04 23:35:29 2020 +0000
Revision:
7:1887c4e4b5de
Parent:
6:91e478ee227e
Child:
8:aa1e315bf408
Creation de la lib pour controler les LEDs par code RGB

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:b045ca817e2c 1 #include "mbed.h"
Rhamao 6:91e478ee227e 2 #include "Thread.h"
Rhamao 6:91e478ee227e 3 #include "rtos_idle.h"
Rhamao 6:91e478ee227e 4 #include "mbed_critical.h"
Rhamao 7:1887c4e4b5de 5 #include "NeoPixelRing12.h"
Rhamao 6:91e478ee227e 6
Rhamao 6:91e478ee227e 7 #define USE_CRITICAL_SECTION_LOCK 1 // Set 0 to see race condition
Rhamao 6:91e478ee227e 8
Rhamao 7:1887c4e4b5de 9 InterruptIn button(USER_BUTTON);
Rhamao 6:91e478ee227e 10 DigitalOut myled(D8);
Rhamao 6:91e478ee227e 11 DigitalOut led1(LED1);
Rhamao 7:1887c4e4b5de 12 NeoPixelRing12 npr(D8);
Rhamao 6:91e478ee227e 13
Rhamao 6:91e478ee227e 14 void bit0(){
Rhamao 6:91e478ee227e 15 myled = 1;
Rhamao 6:91e478ee227e 16 wait_ns(190);
Rhamao 6:91e478ee227e 17 myled = 0;
Rhamao 6:91e478ee227e 18 wait_ns(740);
Rhamao 6:91e478ee227e 19 }
Rhamao 6:91e478ee227e 20
Rhamao 6:91e478ee227e 21 void bit1(){
Rhamao 6:91e478ee227e 22 myled = 1;
Rhamao 6:91e478ee227e 23 wait_ns(600);
Rhamao 6:91e478ee227e 24 myled = 0;
Rhamao 6:91e478ee227e 25 wait_ns(600);
Rhamao 6:91e478ee227e 26 }
Rhamao 6:91e478ee227e 27
Rhamao 7:1887c4e4b5de 28 void pressed(){
Rhamao 7:1887c4e4b5de 29 led1=1;
Rhamao 6:91e478ee227e 30 }
Rhamao 6:91e478ee227e 31
Rhamao 7:1887c4e4b5de 32 void released(){
Rhamao 7:1887c4e4b5de 33 npr.setLights(1, "000000");
Rhamao 7:1887c4e4b5de 34 npr.rst();
Rhamao 7:1887c4e4b5de 35 npr.setLights(12, "000000");
Rhamao 7:1887c4e4b5de 36 led1=true;
Rhamao 6:91e478ee227e 37 }
Rhamao 6:91e478ee227e 38
bcostm 0:b045ca817e2c 39
bcostm 0:b045ca817e2c 40 int main()
Jerome Coutant 5:e8f8a8037256 41 {
Rhamao 6:91e478ee227e 42 int i=0;
Rhamao 7:1887c4e4b5de 43 char blank[100] = "000000";
Rhamao 7:1887c4e4b5de 44 char r[100] = "ff0000";
Rhamao 7:1887c4e4b5de 45 char g[100] = "00ff00";
Rhamao 7:1887c4e4b5de 46 char b[100] = "0000ff";
Rhamao 6:91e478ee227e 47 button.rise(&pressed);
Rhamao 6:91e478ee227e 48 button.fall(&released);
Rhamao 6:91e478ee227e 49 //CriticalSectionLock lock;
Rhamao 6:91e478ee227e 50 //bit0();
Rhamao 6:91e478ee227e 51 //CriticalSectionLock unlock;
Rhamao 7:1887c4e4b5de 52
Rhamao 7:1887c4e4b5de 53 //Une led à 0 avant d'envoyer la trame pour éviter
Rhamao 7:1887c4e4b5de 54 //le bug de trame
Rhamao 7:1887c4e4b5de 55 npr.setLights(1, "ff0000");
Rhamao 7:1887c4e4b5de 56 npr.rst();
Rhamao 7:1887c4e4b5de 57 //la trame
Rhamao 7:1887c4e4b5de 58 npr.setLights(5, r);
Rhamao 7:1887c4e4b5de 59 npr.setLights(2, g);
Rhamao 7:1887c4e4b5de 60 npr.setLights(4, b);
Rhamao 7:1887c4e4b5de 61 npr.rst();
Rhamao 7:1887c4e4b5de 62 wait(100.0);
Rhamao 6:91e478ee227e 63 }
bcostm 0:b045ca817e2c 64
bcostm 0:b045ca817e2c 65