
Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.
Dependencies: lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button
main.cpp@7:1887c4e4b5de, 2020-06-04 (annotated)
- 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?
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 | 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 |