Hello world program using the SX1509 Library for controlling a 8x8 LED matrix.

Dependencies:   SX1509 mbed

Committer:
jjones646
Date:
Tue Oct 21 15:43:13 2014 +0000
Revision:
0:a93ac8eaed5e
storing hello world program

Who changed what in which revision?

UserRevisionLine numberNew 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 }