Driver for http://www.ti.com/lit/ds/symlink/tca9548a.pdf
Fork of TCA9548A by
tca9548a.cpp@0:5bd73cede544, 2016-05-24 (annotated)
- Committer:
- akashvibhute
- Date:
- Tue May 24 06:07:37 2016 +0000
- Revision:
- 0:5bd73cede544
- Child:
- 2:1107ee23873a
Initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 |