Hello program for PCA9546A component library. The PCA9546A is a quad bidirectional translating switch controlled via the I2C-bus. The SCL/SDA upstream pair fans out to four downstream pairs, or channels. Any individual SCx/SDx channel or combination of channels can be selected, determined by the contents of the programmable control register.
Dependencies: LM75B PCA9546A mbed
main.cpp
- Committer:
- okano
- Date:
- 2015-02-23
- Revision:
- 0:c88a1756cfd3
File content as of revision 0:c88a1756cfd3:
/** * PCA9546A library "Hello world" sample * * @author Tedd OKANO * @version 0.1 * @date Feb-2015 * * PCA9546A: an I2C bus switch control library * * The PCA9546A is a quad bidirectional translating switch controlled * via the I2C-bus. The SCL/SDA upstream pair fans out to four downstream * pairs, or channels. Any individual SCx/SDx channel or combination of * channels can be selected, determined by the contents of the programmable * control register. * * For more information about PCA9546A: * http://www.nxp.com/documents/data_sheet/PCA9546A.pdf * */ #include "mbed.h" #include "LM75B.h" #include "PCA9546A.h" PCA9546A i2c_sw( p28, p27, 0xE0 ); int main() { // all PCA9546A's downstream ports are OFF after power-up and hardware-reset i2c_sw.on( 0 ); // turn-ON the channel 0 LM75B tmp0( p28, p27 ); // making instance after a branch of I2C bus (which is connecting the LM75B) enabled i2c_sw.off( 0 ); // turn-OFF the channel 0 i2c_sw.on( 1 ); // turn-ON the channel 1 LM75B tmp1( p28, p27 ); // making instance after a branch of I2C bus (which is connecting the LM75B) enabled while(1) { i2c_sw.off( 1 ); // turn-OFF the channel 1 i2c_sw.on( 0 ); // turn-ON the channel 0 printf( "%.3f\r\n", tmp0.read() ); i2c_sw.off( 0 ); // turn-OFF the channel 0 i2c_sw.on( 1 ); // turn-ON the channel 1 printf( "%.3f\r\n", tmp1.read() ); wait( 1.0 ); } }