Tedd OKANO
/
PCA9955A_simple
PCA9955A test program
main.cpp
- Committer:
- okano
- Date:
- 2014-07-11
- Revision:
- 0:a173ba5ecb1a
- Child:
- 1:0a5e299bf3ef
File content as of revision 0:a173ba5ecb1a:
#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 ); } } } }