TCA9548A 8 channel I2C switch with reset

Dependents:   4012Code PWM SBra_Programme_Mbed

Committer:
akashvibhute
Date:
Wed May 25 05:20:24 2016 +0000
Revision:
1:768491b5e55d
Parent:
0:5bd73cede544
fixed typo in example code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akashvibhute 0:5bd73cede544 1 /**
akashvibhute 0:5bd73cede544 2 * TCA9548A library
akashvibhute 0:5bd73cede544 3 *
akashvibhute 0:5bd73cede544 4 * @author Akash Vibhute
akashvibhute 0:5bd73cede544 5 * @author < akash . roboticist [at] gmail . com >
akashvibhute 0:5bd73cede544 6 * @version 0.1
akashvibhute 0:5bd73cede544 7 * @date May/24/2016
akashvibhute 0:5bd73cede544 8 */
akashvibhute 0:5bd73cede544 9
akashvibhute 0:5bd73cede544 10 #include "tca9548a.h"
akashvibhute 0:5bd73cede544 11
akashvibhute 0:5bd73cede544 12 TCA9548A::TCA9548A( PinName sda, PinName scl, uint8_t i2c_address, PinName resetPin, uint32_t hz ) : i2c_(sda, scl), reset_pin(resetPin)
akashvibhute 0:5bd73cede544 13 {
akashvibhute 0:5bd73cede544 14 i2c_addr = i2c_address;
akashvibhute 0:5bd73cede544 15 i2c_.frequency(hz);
akashvibhute 0:5bd73cede544 16 }
akashvibhute 0:5bd73cede544 17
akashvibhute 0:5bd73cede544 18
akashvibhute 0:5bd73cede544 19 void TCA9548A::select( uint8_t channel )
akashvibhute 0:5bd73cede544 20 {
akashvibhute 0:5bd73cede544 21 char data; //create temporary char buffer
akashvibhute 0:5bd73cede544 22
akashvibhute 0:5bd73cede544 23 if(channel >= 8) return;
akashvibhute 0:5bd73cede544 24
akashvibhute 0:5bd73cede544 25 data = 1 << channel;
akashvibhute 0:5bd73cede544 26 i2c_.write( i2c_addr << 1, &data, 1);
akashvibhute 0:5bd73cede544 27 }
akashvibhute 0:5bd73cede544 28
akashvibhute 0:5bd73cede544 29 void TCA9548A::reset( )
akashvibhute 0:5bd73cede544 30 {
akashvibhute 0:5bd73cede544 31 reset_pin = 0;
akashvibhute 0:5bd73cede544 32 wait_ms(1);
akashvibhute 0:5bd73cede544 33 reset_pin = 1;
akashvibhute 0:5bd73cede544 34 }
akashvibhute 0:5bd73cede544 35