A small compact Library for the I2C IO-Expander TCA9538
Diff: TCA9538.h
- Revision:
- 0:b6e63b82937d
- Child:
- 1:6d5227745d28
diff -r 000000000000 -r b6e63b82937d TCA9538.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TCA9538.h Tue Jul 30 13:44:13 2019 +0000 @@ -0,0 +1,53 @@ +#ifndef TCA9538_H +#define TCA9538_H + +#include "mbed.h" + +/** + * @brief Class for TCA9538 IO-Expander + * + * The TCA9538 is an 8-bit IO-Expander from Texas Instruments. + * + * <h2>Example</h2> + * <code> + * #include "mbed.h" + * #include "TCA9538.h" + * + * I2C i2c(p9, p10); + * DigitalOut io_exp_reset(p11); + * TCA9538 io_exp(i2c,0x70); + * + * int main(void) + * { + * io_exp_reset = 1; //turn IO-Expander on + * io_exp.set(TCA9538::CONFIG, 0x0F); //Bits 0-3 Inputs ; Bits 4-7 Outputs + * + * io_exp.set(TCA9538::OUTPUT, 0xF0); //Turn all output pins on + * while(1) + * { + * uint8_t input_value = io_exp.get(TCA9538::OUTPUT); + * } + * } + * </code> + */ +class TCA9538{ +public: + enum tca9538_registers_t + { + INPUT = 0x00, + OUTPUT = 0x01, + POLARITY = 0x02, + CONFIG = 0x03 + }; + + bool set(tca9538_registers_t index, uint8_t value); + uint8_t get(tca9538_registers_t index); + + TCA9538(I2C& i2c_device, uint8_t address); + +private: + uint8_t m_i2c_address; + I2C& m_i2c_device; +}; + +#endif /* */