Tedd OKANO
/
PCA9955A_simple
PCA9955A test program
Diff: main.cpp
- 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 ); + } + } + } +}