Jonathan Jones
/
SX1509_HelloWorld
Hello world program using the SX1509 Library for controlling a 8x8 LED matrix.
main.cpp@0:a93ac8eaed5e, 2014-10-21 (annotated)
- Committer:
- jjones646
- Date:
- Tue Oct 21 15:43:13 2014 +0000
- Revision:
- 0:a93ac8eaed5e
storing hello world program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jjones646 | 0:a93ac8eaed5e | 1 | #include "mbed.h" |
jjones646 | 0:a93ac8eaed5e | 2 | #include "SX1509.h" |
jjones646 | 0:a93ac8eaed5e | 3 | |
jjones646 | 0:a93ac8eaed5e | 4 | #define WAIT_TIME 0.1 |
jjones646 | 0:a93ac8eaed5e | 5 | |
jjones646 | 0:a93ac8eaed5e | 6 | DigitalOut led1(LED1); |
jjones646 | 0:a93ac8eaed5e | 7 | SX1509 expander(p9, p10); // sda, scl |
jjones646 | 0:a93ac8eaed5e | 8 | |
jjones646 | 0:a93ac8eaed5e | 9 | int main() |
jjones646 | 0:a93ac8eaed5e | 10 | { |
jjones646 | 0:a93ac8eaed5e | 11 | // Setup the I/O pins for open drain outputs to allow controlling grid of LEDs |
jjones646 | 0:a93ac8eaed5e | 12 | expander.setOpenDrain(A,ON); |
jjones646 | 0:a93ac8eaed5e | 13 | |
jjones646 | 0:a93ac8eaed5e | 14 | // Main loop |
jjones646 | 0:a93ac8eaed5e | 15 | while (1) { |
jjones646 | 0:a93ac8eaed5e | 16 | |
jjones646 | 0:a93ac8eaed5e | 17 | // Set the "A" rows to high, then shift the open drain outputs so they open for each row of LEDs |
jjones646 | 0:a93ac8eaed5e | 18 | for (int i=0; i<8 ; i++) { |
jjones646 | 0:a93ac8eaed5e | 19 | expander.setA(0xFF<<i+1); |
jjones646 | 0:a93ac8eaed5e | 20 | expander.set(i+8); |
jjones646 | 0:a93ac8eaed5e | 21 | wait(WAIT_TIME); |
jjones646 | 0:a93ac8eaed5e | 22 | } |
jjones646 | 0:a93ac8eaed5e | 23 | |
jjones646 | 0:a93ac8eaed5e | 24 | // Toggle the on-board led to indicate activity |
jjones646 | 0:a93ac8eaed5e | 25 | led1=!led1; |
jjones646 | 0:a93ac8eaed5e | 26 | |
jjones646 | 0:a93ac8eaed5e | 27 | // Now shift the rows off the led grid array |
jjones646 | 0:a93ac8eaed5e | 28 | for (int i=0; i<8 ; i++) { |
jjones646 | 0:a93ac8eaed5e | 29 | expander.setB(0xFF>>i+1); |
jjones646 | 0:a93ac8eaed5e | 30 | expander.clear(i); |
jjones646 | 0:a93ac8eaed5e | 31 | wait(WAIT_TIME); |
jjones646 | 0:a93ac8eaed5e | 32 | } |
jjones646 | 0:a93ac8eaed5e | 33 | } |
jjones646 | 0:a93ac8eaed5e | 34 | } |