PCA9955A test program

Dependencies:   mbed

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 );
            }
        }
    }
}