led
Dependencies: mbed PixelArray
main.cpp@3:7559835b072a, 2019-06-13 (annotated)
- Committer:
- clementlignie
- Date:
- Thu Jun 13 14:58:56 2019 +0000
- Revision:
- 3:7559835b072a
- Parent:
- 1:ca76237d2965
leds
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JacobBramley | 0:60499ad28ea9 | 1 | #include "mbed.h" |
JacobBramley | 1:ca76237d2965 | 2 | #include "neopixel.h" |
JacobBramley | 0:60499ad28ea9 | 3 | |
JacobBramley | 1:ca76237d2965 | 4 | // This must be an SPI MOSI pin. |
clementlignie | 3:7559835b072a | 5 | #define DATA_PIN p11 |
JacobBramley | 0:60499ad28ea9 | 6 | |
clementlignie | 3:7559835b072a | 7 | DigitalIn BPA(p17); |
clementlignie | 3:7559835b072a | 8 | DigitalIn BPB(p18); |
clementlignie | 3:7559835b072a | 9 | |
clementlignie | 3:7559835b072a | 10 | void generateTourne(neopixel::Pixel * out, uint32_t index, uintptr_t extra) |
JacobBramley | 1:ca76237d2965 | 11 | { |
clementlignie | 3:7559835b072a | 12 | uint32_t brightness = 100; |
JacobBramley | 1:ca76237d2965 | 13 | out->red = ((index + extra) & 0x1) ? brightness : 0; |
JacobBramley | 1:ca76237d2965 | 14 | out->green = ((index + extra) & 0x2) ? brightness : 0; |
JacobBramley | 1:ca76237d2965 | 15 | out->blue = ((index + extra) & 0x4) ? brightness : 0; |
JacobBramley | 0:60499ad28ea9 | 16 | } |
JacobBramley | 0:60499ad28ea9 | 17 | |
clementlignie | 3:7559835b072a | 18 | void generateRouge(neopixel::Pixel * out, uint32_t index, uintptr_t extra) |
clementlignie | 3:7559835b072a | 19 | { |
clementlignie | 3:7559835b072a | 20 | uint32_t brightness = 100; |
clementlignie | 3:7559835b072a | 21 | out->red = 255; |
clementlignie | 3:7559835b072a | 22 | out->green = 0; |
clementlignie | 3:7559835b072a | 23 | out->blue = 0; |
clementlignie | 3:7559835b072a | 24 | } |
clementlignie | 3:7559835b072a | 25 | void generateVert(neopixel::Pixel * out, uint32_t index, uintptr_t extra) |
clementlignie | 3:7559835b072a | 26 | { |
clementlignie | 3:7559835b072a | 27 | uint32_t brightness = 100; |
clementlignie | 3:7559835b072a | 28 | out->red = 0; |
clementlignie | 3:7559835b072a | 29 | out->green = 255; |
clementlignie | 3:7559835b072a | 30 | out->blue = 0; |
clementlignie | 3:7559835b072a | 31 | } |
clementlignie | 3:7559835b072a | 32 | |
JacobBramley | 1:ca76237d2965 | 33 | int main() |
JacobBramley | 1:ca76237d2965 | 34 | { |
JacobBramley | 1:ca76237d2965 | 35 | // Create a temporary DigitalIn so we can configure the pull-down resistor. |
JacobBramley | 1:ca76237d2965 | 36 | // (The mbed API doesn't provide any other way to do this.) |
JacobBramley | 1:ca76237d2965 | 37 | // An alternative is to connect an external pull-down resistor. |
JacobBramley | 1:ca76237d2965 | 38 | DigitalIn(DATA_PIN, PullDown); |
JacobBramley | 1:ca76237d2965 | 39 | |
JacobBramley | 1:ca76237d2965 | 40 | // The pixel array control class. |
JacobBramley | 1:ca76237d2965 | 41 | neopixel::PixelArray array(DATA_PIN); |
JacobBramley | 1:ca76237d2965 | 42 | |
JacobBramley | 1:ca76237d2965 | 43 | uint32_t offset = 0; |
JacobBramley | 1:ca76237d2965 | 44 | while (1) { |
clementlignie | 3:7559835b072a | 45 | |
clementlignie | 3:7559835b072a | 46 | if (!(BPA)){ |
clementlignie | 3:7559835b072a | 47 | array.update(generateVert, 100, offset++); |
clementlignie | 3:7559835b072a | 48 | wait(5); |
clementlignie | 3:7559835b072a | 49 | } |
clementlignie | 3:7559835b072a | 50 | if (!(BPB)){ |
clementlignie | 3:7559835b072a | 51 | array.update(generateRouge, 100, offset++); |
clementlignie | 3:7559835b072a | 52 | wait(5); |
clementlignie | 3:7559835b072a | 53 | } |
clementlignie | 3:7559835b072a | 54 | //if ((BPA == 1)&&(BPB == 1)) |
clementlignie | 3:7559835b072a | 55 | array.update(generateTourne, 100, offset++); |
clementlignie | 3:7559835b072a | 56 | |
JacobBramley | 1:ca76237d2965 | 57 | wait_ms(250); |
JacobBramley | 0:60499ad28ea9 | 58 | } |
JacobBramley | 0:60499ad28ea9 | 59 | } |