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

Dependencies:   lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button

Committer:
Rhamao
Date:
Tue Jun 30 23:39:22 2020 +0000
Revision:
18:794bfe50be5b
Parent:
17:60720d5cb48f
Interfacage NeoPixel Ring 12, LPRO MECSE, Arnaud A.

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 14:7b74ad030896 5 #include "neoPixelRing12/neoPixelRing12.h"
Rhamao 14:7b74ad030896 6 #include "view1.h"
Rhamao 8:aa1e315bf408 7 #include "stm32746g_discovery_lcd.h"
Rhamao 8:aa1e315bf408 8 #include "stm32746g_discovery_ts.h"
Rhamao 13:0708365334c4 9 #include "lcd/lcd.h"
Rhamao 14:7b74ad030896 10 #include "view2/view2.h"
Rhamao 16:a5bfabe7c884 11 #include "rtos.h"
Rhamao 8:aa1e315bf408 12 #include <list>
Rhamao 8:aa1e315bf408 13 #define SCREENWIDTH 480
Rhamao 8:aa1e315bf408 14 #define SCREENHEIGHT 272
Rhamao 6:91e478ee227e 15
Rhamao 6:91e478ee227e 16 #define USE_CRITICAL_SECTION_LOCK 1 // Set 0 to see race condition
Rhamao 6:91e478ee227e 17
Rhamao 7:1887c4e4b5de 18 NeoPixelRing12 npr(D8);
Rhamao 13:0708365334c4 19 LCD disco;
Rhamao 14:7b74ad030896 20 View1 v1;
Rhamao 14:7b74ad030896 21 View2 v2;
Rhamao 14:7b74ad030896 22 TS_StateTypeDef TS_State;
Rhamao 14:7b74ad030896 23 char RGBmap[12][7];
Rhamao 16:a5bfabe7c884 24 Thread t1;
Rhamao 16:a5bfabe7c884 25 Thread t2;
bcostm 0:b045ca817e2c 26
Rhamao 16:a5bfabe7c884 27 void ui() {
Rhamao 16:a5bfabe7c884 28 while (true) {
Rhamao 16:a5bfabe7c884 29 if(!v1.getViewChanged()){
Rhamao 16:a5bfabe7c884 30 v1.updateLCD();
Rhamao 16:a5bfabe7c884 31 if(v1.getSetNewColorEnabled()){
Rhamao 17:60720d5cb48f 32 t2.signal_set(0x1);
Rhamao 16:a5bfabe7c884 33 }
Rhamao 16:a5bfabe7c884 34 }else{
Rhamao 16:a5bfabe7c884 35 v2.updateLCD();
Rhamao 16:a5bfabe7c884 36 v1.setViewChanged(!v2.getViewChanged());
Rhamao 16:a5bfabe7c884 37 }
Rhamao 16:a5bfabe7c884 38 Thread::wait(1);
Rhamao 16:a5bfabe7c884 39 }
Rhamao 16:a5bfabe7c884 40 }
Rhamao 16:a5bfabe7c884 41
Rhamao 16:a5bfabe7c884 42 void leds() {
Rhamao 16:a5bfabe7c884 43 while (true) {
Rhamao 17:60720d5cb48f 44 //Set la couleur des LEDS configurés sur la view1
Rhamao 17:60720d5cb48f 45 Thread::signal_wait(0x1, osWaitForever);
Rhamao 17:60720d5cb48f 46 v1.getRGBmap(RGBmap);
Rhamao 17:60720d5cb48f 47 CriticalSectionLock lock;
Rhamao 17:60720d5cb48f 48 npr.setLights(RGBmap);
Rhamao 17:60720d5cb48f 49 CriticalSectionLock unlock;
Rhamao 16:a5bfabe7c884 50 }
Rhamao 16:a5bfabe7c884 51 }
Rhamao 16:a5bfabe7c884 52
Rhamao 16:a5bfabe7c884 53 int main() {
Rhamao 16:a5bfabe7c884 54 npr.setLights(12, "000000");
Rhamao 16:a5bfabe7c884 55 disco.initLCD();
Rhamao 16:a5bfabe7c884 56 v1.initView();
Rhamao 16:a5bfabe7c884 57 v2.initView();
Rhamao 16:a5bfabe7c884 58 t1.start(ui);
Rhamao 16:a5bfabe7c884 59 t2.start(leds);
Rhamao 16:a5bfabe7c884 60 Thread::wait(osWaitForever);
Rhamao 6:91e478ee227e 61 }
bcostm 0:b045ca817e2c 62
bcostm 0:b045ca817e2c 63
Rhamao 16:a5bfabe7c884 64
Rhamao 16:a5bfabe7c884 65