Tedd OKANO
/
PCA9955A_simple
PCA9955A test program
Revision 0:a173ba5ecb1a, committed 2014-07-11
- 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