Neil Thiessen
/
PCA9955_HelloWorld
A simple serial test program for the PCA9952/55 library.
main.cpp@7:f4ca7df350e9, 2014-04-28 (annotated)
- Committer:
- neilt6
- Date:
- Mon Apr 28 04:52:36 2014 +0000
- Revision:
- 7:f4ca7df350e9
- Parent:
- 5:e0d366e2a7f0
Removed float suffix for readability
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
neilt6 | 0:6ef5b29b9e14 | 1 | #include "mbed.h" |
neilt6 | 0:6ef5b29b9e14 | 2 | #include "PCA9955.h" |
neilt6 | 0:6ef5b29b9e14 | 3 | |
neilt6 | 5:e0d366e2a7f0 | 4 | //Create a PCA9955 object at the default address (ADDRESS_0) |
neilt6 | 5:e0d366e2a7f0 | 5 | PCA9955 driver(p28, p27); |
neilt6 | 0:6ef5b29b9e14 | 6 | |
neilt6 | 0:6ef5b29b9e14 | 7 | int main() |
neilt6 | 0:6ef5b29b9e14 | 8 | { |
neilt6 | 0:6ef5b29b9e14 | 9 | //Try to open the PCA9955 |
neilt6 | 0:6ef5b29b9e14 | 10 | if (driver.open()) { |
neilt6 | 0:6ef5b29b9e14 | 11 | printf("Device detected!\n"); |
neilt6 | 0:6ef5b29b9e14 | 12 | |
neilt6 | 0:6ef5b29b9e14 | 13 | //Reset the device |
neilt6 | 0:6ef5b29b9e14 | 14 | //NOTE: This might reset other I2C devices as well! |
neilt6 | 0:6ef5b29b9e14 | 15 | driver.reset(); |
neilt6 | 4:0b1798094768 | 16 | wait_ms(5); |
neilt6 | 0:6ef5b29b9e14 | 17 | |
neilt6 | 2:3bf093141522 | 18 | //Set all of the output states to PWM mode |
neilt6 | 0:6ef5b29b9e14 | 19 | driver.allOutputStates(PCA9955::OUTPUT_PWM); |
neilt6 | 0:6ef5b29b9e14 | 20 | |
neilt6 | 2:3bf093141522 | 21 | //Set all of the output currents to maximum |
neilt6 | 0:6ef5b29b9e14 | 22 | driver.allOutputCurrents(1.0); |
neilt6 | 0:6ef5b29b9e14 | 23 | |
neilt6 | 0:6ef5b29b9e14 | 24 | while (1) { |
neilt6 | 0:6ef5b29b9e14 | 25 | //Generate a breathing effect on all of the outputs |
neilt6 | 7:f4ca7df350e9 | 26 | for (float i = 0.0; i < 360.0; i += 0.1) |
neilt6 | 7:f4ca7df350e9 | 27 | driver = 0.5 * (sinf(i * 3.14159265 / 180.0) + 1); |
neilt6 | 0:6ef5b29b9e14 | 28 | } |
neilt6 | 0:6ef5b29b9e14 | 29 | } else { |
neilt6 | 0:6ef5b29b9e14 | 30 | error("Device not detected!\n"); |
neilt6 | 0:6ef5b29b9e14 | 31 | } |
neilt6 | 0:6ef5b29b9e14 | 32 | } |