PCA9955A test program

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }