MAX14661 Serial Controlled 16:2 Multiplexer
Dependents: MBD2PMD_WebServer ARD2PMD_WebServer MAX14661_DEMO MAX3232_DEMO
MAX14661.cpp@2:c3525ee2d636, 2014-04-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |