PCA9955A test program

Dependencies:   mbed

Revision:
0:a173ba5ecb1a
Child:
1:0a5e299bf3ef
--- /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 );
+            }
+        }
+    }
+}