PCA9955A test program

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
okano
Date:
Fri Jul 11 03:04:51 2014 +0000
Child:
1:0a5e299bf3ef
Commit message:
very simple PCA9955A control sample

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jul 11 03:04:51 2014 +0000
@@ -0,0 +1,39 @@
+#include "mbed.h"
+
+I2C i2c( p28, p27 );    //  SDA, SCL
+
+#define     SLAVE_ADDR              0x02
+
+#define     AUTO_INCREMENT          0x80
+#define     REGISTER_START          0x00
+#define     LEDOUT_REGISTER_START   0x02
+#define     PWM_REGISTER_START      0x08
+#define     IREF_REGISTER_START     0x18
+#define     PWMALL_REGISTER_ADDR    0x44
+#define     IREFALL_REGISTER_ADDR   0x45
+
+
+int main()
+{
+    char    init_data0[]    = { AUTO_INCREMENT | REGISTER_START, 0x00, 0x05, 0xAA, 0xAA, 0xAA, 0xAA };
+    char    init_data1[]    = { IREFALL_REGISTER_ADDR, 0x10 };
+    char    data[ 2 ];
+
+    i2c.write( SLAVE_ADDR, init_data0, sizeof( init_data0 ) );
+    i2c.write( SLAVE_ADDR, init_data1, sizeof( init_data1 ) );
+
+    while(1) {
+        for ( int port = 0; port < 16; port++ ) {
+            for ( int i = 0; i < 256; i++ ) {
+                if ( !port && !i )
+                    data[ 0 ]   = PWMALL_REGISTER_ADDR;
+                else
+                    data[ 0 ]   = port + PWM_REGISTER_START;
+
+                data[ 1 ]   = i;
+
+                i2c.write( SLAVE_ADDR, data, 2 );
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Jul 11 03:04:51 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/04dd9b1680ae
\ No newline at end of file