Datasheet
"
8**",'%9():(;8QRLMMR(G% @ & >& A (
;8QRLMMRSC(
#ifndef MAX14661_H
#define MAX14661_H
#include "mbed.h"
/** MAX14661 Library, Provides utilities for configuring the MAX14661
over I2C
*
* Example:
* @code
* // Enable only switch B3 and read back switch state.
*
* #include "MAX14661.h"
*
* MAX14661 mux(p28, p27);
*
* int main() {
* mux.setAB(0x0000, MAX14661::SW03);
* printf("mux = 0x%08X\n", mux.read());
* mux.clearAll();
* printf("mux = 0x%08X\n", mux.read());
* }
* @endcode
*/
class MAX14661
{
public:
/** Create a MAX14661 interface
*
* @param sda I2C data line pin
* @param scl I2C clock line pin
* @param addr MAX14661 I2C address
*/
MAX14661(PinName sda, PinName scl, int addr = 0x98);
~MAX14661();
/** Name the register addresses
*/
enum MAX14661regs {
REG_DIR0 = 0x00, /**< 8A-1A Direct Access */
REG_DIR1, /**< 16A-9A Direct Access */
REG_DIR2, /**< 8B-1B Direct Access */
REG_DIR3, /**< 16B-9B Direct Access */
REG_SHDW0 = 0x10, /**< 8A-1A Shadow */
REG_SHDW1, /**< 16A-9A Shadow */
REG_SHDW2, /**< 8B-1B Shadow */
REG_SHSW3, /**< 16B-9B Shadow */
REG_CMD_A, /**< Command A */
REG_CMD_B /**< Command A */
};