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

Dependencies:   lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button

Committer:
Rhamao
Date:
Mon Jun 15 00:42:25 2020 +0000
Revision:
9:89d39fc98b17
Parent:
8:aa1e315bf408
Child:
13:0708365334c4
Rajout de plusieurs methode et de la variable screenReleased a la classe view

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 8:aa1e315bf408 6 #include "view.h"
Rhamao 8:aa1e315bf408 7 #include "stm32746g_discovery_lcd.h"
Rhamao 8:aa1e315bf408 8 #include "stm32746g_discovery_ts.h"
Rhamao 8:aa1e315bf408 9 #include <list>
Rhamao 8:aa1e315bf408 10 #define SCREENWIDTH 480
Rhamao 8:aa1e315bf408 11 #define SCREENHEIGHT 272
Rhamao 6:91e478ee227e 12
Rhamao 6:91e478ee227e 13 #define USE_CRITICAL_SECTION_LOCK 1 // Set 0 to see race condition
Rhamao 6:91e478ee227e 14
Rhamao 8:aa1e315bf408 15 uint8_t text[30];
Rhamao 7:1887c4e4b5de 16 InterruptIn button(USER_BUTTON);
Rhamao 6:91e478ee227e 17 DigitalOut myled(D8);
Rhamao 6:91e478ee227e 18 DigitalOut led1(LED1);
Rhamao 7:1887c4e4b5de 19 NeoPixelRing12 npr(D8);
Rhamao 8:aa1e315bf408 20 char blank[7] = "000000";
Rhamao 8:aa1e315bf408 21 char r[7] = "ff0000";
Rhamao 8:aa1e315bf408 22 char g[7] = "00ff00";
Rhamao 8:aa1e315bf408 23 char b[7] = "0000ff";
Rhamao 6:91e478ee227e 24
Rhamao 9:89d39fc98b17 25
Rhamao 6:91e478ee227e 26 void bit0(){
Rhamao 6:91e478ee227e 27 myled = 1;
Rhamao 6:91e478ee227e 28 wait_ns(190);
Rhamao 6:91e478ee227e 29 myled = 0;
Rhamao 6:91e478ee227e 30 wait_ns(740);
Rhamao 6:91e478ee227e 31 }
Rhamao 6:91e478ee227e 32
Rhamao 6:91e478ee227e 33 void bit1(){
Rhamao 6:91e478ee227e 34 myled = 1;
Rhamao 6:91e478ee227e 35 wait_ns(600);
Rhamao 6:91e478ee227e 36 myled = 0;
Rhamao 6:91e478ee227e 37 wait_ns(600);
Rhamao 6:91e478ee227e 38 }
Rhamao 6:91e478ee227e 39
Rhamao 9:89d39fc98b17 40 void press(){
Rhamao 7:1887c4e4b5de 41 led1=1;
Rhamao 6:91e478ee227e 42 }
Rhamao 6:91e478ee227e 43
Rhamao 9:89d39fc98b17 44 void releas(){
Rhamao 7:1887c4e4b5de 45 npr.setLights(1, "000000");
Rhamao 7:1887c4e4b5de 46 npr.rst();
Rhamao 7:1887c4e4b5de 47 npr.setLights(12, "000000");
Rhamao 7:1887c4e4b5de 48 led1=true;
Rhamao 6:91e478ee227e 49 }
Rhamao 6:91e478ee227e 50
bcostm 0:b045ca817e2c 51
bcostm 0:b045ca817e2c 52 int main()
Jerome Coutant 5:e8f8a8037256 53 {
Rhamao 8:aa1e315bf408 54 View v;
Rhamao 9:89d39fc98b17 55 while(1){
Rhamao 9:89d39fc98b17 56 v.updateLCD();
Rhamao 9:89d39fc98b17 57 }
Rhamao 8:aa1e315bf408 58 //*************************************************
Rhamao 6:91e478ee227e 59 int i=0;
Rhamao 9:89d39fc98b17 60 button.rise(&press);
Rhamao 9:89d39fc98b17 61 button.fall(&releas);
Rhamao 6:91e478ee227e 62 //CriticalSectionLock lock;
Rhamao 6:91e478ee227e 63 //bit0();
Rhamao 6:91e478ee227e 64 //CriticalSectionLock unlock;
Rhamao 7:1887c4e4b5de 65
Rhamao 7:1887c4e4b5de 66 //Une led à 0 avant d'envoyer la trame pour éviter
Rhamao 7:1887c4e4b5de 67 //le bug de trame
Rhamao 7:1887c4e4b5de 68 npr.setLights(1, "ff0000");
Rhamao 7:1887c4e4b5de 69 npr.rst();
Rhamao 7:1887c4e4b5de 70 //la trame
Rhamao 7:1887c4e4b5de 71 npr.setLights(5, r);
Rhamao 7:1887c4e4b5de 72 npr.setLights(2, g);
Rhamao 7:1887c4e4b5de 73 npr.setLights(4, b);
Rhamao 7:1887c4e4b5de 74 npr.rst();
Rhamao 7:1887c4e4b5de 75 wait(100.0);
Rhamao 6:91e478ee227e 76 }
bcostm 0:b045ca817e2c 77
bcostm 0:b045ca817e2c 78