Tedd OKANO
/
PCA9955A_simple
PCA9955A test program
main.cpp@4:507e37f8008d, 2014-08-01 (annotated)
- Committer:
- okano
- Date:
- Fri Aug 01 07:11:31 2014 +0000
- Revision:
- 4:507e37f8008d
- Parent:
- 3:dbe7902d4335
- Child:
- 5:b93b28e126fe
simplified operation of PCA9955A
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 0:a173ba5ecb1a | 1 | #include "mbed.h" |
okano | 4:507e37f8008d | 2 | #include "PCA9955A_registers.h" |
okano | 0:a173ba5ecb1a | 3 | |
okano | 0:a173ba5ecb1a | 4 | I2C i2c( p28, p27 ); // SDA, SCL |
okano | 0:a173ba5ecb1a | 5 | |
okano | 0:a173ba5ecb1a | 6 | #define SLAVE_ADDR 0x02 |
okano | 0:a173ba5ecb1a | 7 | |
okano | 1:0a5e299bf3ef | 8 | void register_write( char addr, char data ); |
okano | 0:a173ba5ecb1a | 9 | |
okano | 0:a173ba5ecb1a | 10 | int main() |
okano | 0:a173ba5ecb1a | 11 | { |
okano | 4:507e37f8008d | 12 | // initialization |
okano | 4:507e37f8008d | 13 | |
okano | 4:507e37f8008d | 14 | register_write( MODE1, 0x00 ); |
okano | 4:507e37f8008d | 15 | register_write( MODE2, 0x25 ); |
okano | 4:507e37f8008d | 16 | register_write( LEDOUT0, 0xAA ); |
okano | 4:507e37f8008d | 17 | register_write( LEDOUT1, 0xAA ); |
okano | 4:507e37f8008d | 18 | register_write( LEDOUT2, 0xAA ); |
okano | 4:507e37f8008d | 19 | register_write( LEDOUT3, 0xAA ); |
okano | 4:507e37f8008d | 20 | register_write( IREFALL, 0x10 ); |
okano | 4:507e37f8008d | 21 | |
okano | 4:507e37f8008d | 22 | // operation loop |
okano | 0:a173ba5ecb1a | 23 | |
okano | 4:507e37f8008d | 24 | while ( 1 ) { |
okano | 4:507e37f8008d | 25 | |
okano | 4:507e37f8008d | 26 | for ( int i = 0; i < 256; i++ ) { |
okano | 4:507e37f8008d | 27 | register_write( PWM0, i ); |
okano | 4:507e37f8008d | 28 | wait( 0.01 ); |
okano | 4:507e37f8008d | 29 | } |
okano | 0:a173ba5ecb1a | 30 | |
okano | 4:507e37f8008d | 31 | for ( int i = 255; i >= 0; i-- ) { |
okano | 4:507e37f8008d | 32 | register_write( PWM0, i ); |
okano | 4:507e37f8008d | 33 | wait( 0.01 ); |
okano | 4:507e37f8008d | 34 | } |
okano | 1:0a5e299bf3ef | 35 | } |
okano | 0:a173ba5ecb1a | 36 | } |
okano | 1:0a5e299bf3ef | 37 | |
okano | 1:0a5e299bf3ef | 38 | void register_write( char addr, char data ) |
okano | 1:0a5e299bf3ef | 39 | { |
okano | 1:0a5e299bf3ef | 40 | char d[ 2 ]; |
okano | 2:ead3652b6fd2 | 41 | |
okano | 1:0a5e299bf3ef | 42 | d[ 0 ] = addr; |
okano | 1:0a5e299bf3ef | 43 | d[ 1 ] = data; |
okano | 1:0a5e299bf3ef | 44 | i2c.write( SLAVE_ADDR, d, 2 ); |
okano | 1:0a5e299bf3ef | 45 | } |
okano | 1:0a5e299bf3ef | 46 |