
Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.
Dependencies: lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button
main.cpp@18:794bfe50be5b, 2020-06-30 (annotated)
- 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?
User | Revision | Line number | New 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 |