A simple serial test program for the PCA9952/55 library.

Dependencies:   PCA9955 mbed

Committer:
neilt6
Date:
Fri May 30 19:00:36 2014 +0000
Revision:
11:c033b1716f04
Parent:
7:f4ca7df350e9
Updated PCA9955 library

Who changed what in which revision?

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