Tedd OKANO
/
PCA9955A_simple
PCA9955A test program
main.cpp@0:a173ba5ecb1a, 2014-07-11 (annotated)
- Committer:
- okano
- Date:
- Fri Jul 11 03:04:51 2014 +0000
- Revision:
- 0:a173ba5ecb1a
- Child:
- 1:0a5e299bf3ef
very simple PCA9955A control sample
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 0:a173ba5ecb1a | 1 | #include "mbed.h" |
okano | 0:a173ba5ecb1a | 2 | |
okano | 0:a173ba5ecb1a | 3 | I2C i2c( p28, p27 ); // SDA, SCL |
okano | 0:a173ba5ecb1a | 4 | |
okano | 0:a173ba5ecb1a | 5 | #define SLAVE_ADDR 0x02 |
okano | 0:a173ba5ecb1a | 6 | |
okano | 0:a173ba5ecb1a | 7 | #define AUTO_INCREMENT 0x80 |
okano | 0:a173ba5ecb1a | 8 | #define REGISTER_START 0x00 |
okano | 0:a173ba5ecb1a | 9 | #define LEDOUT_REGISTER_START 0x02 |
okano | 0:a173ba5ecb1a | 10 | #define PWM_REGISTER_START 0x08 |
okano | 0:a173ba5ecb1a | 11 | #define IREF_REGISTER_START 0x18 |
okano | 0:a173ba5ecb1a | 12 | #define PWMALL_REGISTER_ADDR 0x44 |
okano | 0:a173ba5ecb1a | 13 | #define IREFALL_REGISTER_ADDR 0x45 |
okano | 0:a173ba5ecb1a | 14 | |
okano | 0:a173ba5ecb1a | 15 | |
okano | 0:a173ba5ecb1a | 16 | int main() |
okano | 0:a173ba5ecb1a | 17 | { |
okano | 0:a173ba5ecb1a | 18 | char init_data0[] = { AUTO_INCREMENT | REGISTER_START, 0x00, 0x05, 0xAA, 0xAA, 0xAA, 0xAA }; |
okano | 0:a173ba5ecb1a | 19 | char init_data1[] = { IREFALL_REGISTER_ADDR, 0x10 }; |
okano | 0:a173ba5ecb1a | 20 | char data[ 2 ]; |
okano | 0:a173ba5ecb1a | 21 | |
okano | 0:a173ba5ecb1a | 22 | i2c.write( SLAVE_ADDR, init_data0, sizeof( init_data0 ) ); |
okano | 0:a173ba5ecb1a | 23 | i2c.write( SLAVE_ADDR, init_data1, sizeof( init_data1 ) ); |
okano | 0:a173ba5ecb1a | 24 | |
okano | 0:a173ba5ecb1a | 25 | while(1) { |
okano | 0:a173ba5ecb1a | 26 | for ( int port = 0; port < 16; port++ ) { |
okano | 0:a173ba5ecb1a | 27 | for ( int i = 0; i < 256; i++ ) { |
okano | 0:a173ba5ecb1a | 28 | if ( !port && !i ) |
okano | 0:a173ba5ecb1a | 29 | data[ 0 ] = PWMALL_REGISTER_ADDR; |
okano | 0:a173ba5ecb1a | 30 | else |
okano | 0:a173ba5ecb1a | 31 | data[ 0 ] = port + PWM_REGISTER_START; |
okano | 0:a173ba5ecb1a | 32 | |
okano | 0:a173ba5ecb1a | 33 | data[ 1 ] = i; |
okano | 0:a173ba5ecb1a | 34 | |
okano | 0:a173ba5ecb1a | 35 | i2c.write( SLAVE_ADDR, data, 2 ); |
okano | 0:a173ba5ecb1a | 36 | } |
okano | 0:a173ba5ecb1a | 37 | } |
okano | 0:a173ba5ecb1a | 38 | } |
okano | 0:a173ba5ecb1a | 39 | } |