MAX14661 Serial Controlled 16:2 Multiplexer

Dependents:   MBD2PMD_WebServer ARD2PMD_WebServer MAX14661_DEMO MAX3232_DEMO

Committer:
gsteiert
Date:
Sat Apr 19 22:59:45 2014 +0000
Revision:
2:c3525ee2d636
Parent:
0:6bd0b1a28e10
Shortened comment header;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsteiert 0:6bd0b1a28e10 1 /* MAX14661 Driver Library
gsteiert 0:6bd0b1a28e10 2 *
gsteiert 0:6bd0b1a28e10 3 */
gsteiert 0:6bd0b1a28e10 4
gsteiert 0:6bd0b1a28e10 5 #include "MAX14661.h"
gsteiert 0:6bd0b1a28e10 6 #include "mbed.h"
gsteiert 0:6bd0b1a28e10 7
gsteiert 0:6bd0b1a28e10 8 MAX14661::MAX14661(PinName sda, PinName scl, int addr) : _i2c(sda, scl)
gsteiert 0:6bd0b1a28e10 9 {
gsteiert 0:6bd0b1a28e10 10 _addr = addr;
gsteiert 0:6bd0b1a28e10 11 }
gsteiert 0:6bd0b1a28e10 12
gsteiert 0:6bd0b1a28e10 13 MAX14661::~MAX14661()
gsteiert 0:6bd0b1a28e10 14 {
gsteiert 0:6bd0b1a28e10 15 }
gsteiert 0:6bd0b1a28e10 16
gsteiert 0:6bd0b1a28e10 17 void MAX14661::clearAll()
gsteiert 0:6bd0b1a28e10 18 {
gsteiert 0:6bd0b1a28e10 19 char data[3];
gsteiert 0:6bd0b1a28e10 20 data[0] = REG_CMD_A;
gsteiert 0:6bd0b1a28e10 21 data[1] = CMD_DIS;
gsteiert 0:6bd0b1a28e10 22 data[2] = CMD_DIS;
gsteiert 0:6bd0b1a28e10 23 _i2c.write(_addr, data, 3);
gsteiert 0:6bd0b1a28e10 24 }
gsteiert 0:6bd0b1a28e10 25
gsteiert 0:6bd0b1a28e10 26 void MAX14661::setAB(int swA, int swB)
gsteiert 0:6bd0b1a28e10 27 {
gsteiert 0:6bd0b1a28e10 28 char data[7];
gsteiert 0:6bd0b1a28e10 29 data[0] = REG_SHDW0;
gsteiert 0:6bd0b1a28e10 30 data[1] = swA;
gsteiert 0:6bd0b1a28e10 31 data[2] = swA >> 8;
gsteiert 0:6bd0b1a28e10 32 data[3] = swB;
gsteiert 0:6bd0b1a28e10 33 data[4] = swB >> 8;
gsteiert 0:6bd0b1a28e10 34 data[5] = CMD_COPY;
gsteiert 0:6bd0b1a28e10 35 data[6] = CMD_COPY;
gsteiert 0:6bd0b1a28e10 36 _i2c.write(_addr, data, 7);
gsteiert 0:6bd0b1a28e10 37 }
gsteiert 0:6bd0b1a28e10 38
gsteiert 0:6bd0b1a28e10 39 int MAX14661::read()
gsteiert 0:6bd0b1a28e10 40 {
gsteiert 0:6bd0b1a28e10 41 char data[4];
gsteiert 0:6bd0b1a28e10 42 data[0] = REG_DIR0;
gsteiert 0:6bd0b1a28e10 43 _i2c.write(_addr, data, 1, true);
gsteiert 0:6bd0b1a28e10 44 _i2c.read(_addr, data, 4);
gsteiert 0:6bd0b1a28e10 45 return ((data[3] << 24) | (data[2] << 16) |(data[1] << 8) | data[0]);
gsteiert 0:6bd0b1a28e10 46 }