|
1 | 1 | #include "MCP23017.h"
|
2 | 2 |
|
3 |
| -MCP23017::MCP23017(uint8_t address) { |
| 3 | +MCP23017::MCP23017(uint8_t address, TwoWire& bus = Wire) { |
4 | 4 | _deviceAddr = address;
|
| 5 | + _bus = &bus; |
5 | 6 | }
|
6 | 7 |
|
7 | 8 | MCP23017::~MCP23017() {}
|
@@ -100,39 +101,39 @@ uint16_t MCP23017::read()
|
100 | 101 |
|
101 | 102 | void MCP23017::writeRegister(MCP23017_REGISTER reg, uint8_t value)
|
102 | 103 | {
|
103 |
| - Wire.beginTransmission(_deviceAddr); |
104 |
| - Wire.write(static_cast<uint8_t>(reg)); |
105 |
| - Wire.write(value); |
106 |
| - Wire.endTransmission(); |
| 104 | + _bus->beginTransmission(_deviceAddr); |
| 105 | + _bus->write(static_cast<uint8_t>(reg)); |
| 106 | + _bus->write(value); |
| 107 | + _bus->endTransmission(); |
107 | 108 | }
|
108 | 109 |
|
109 | 110 | void MCP23017::writeRegister(MCP23017_REGISTER reg, uint8_t portA, uint8_t portB)
|
110 | 111 | {
|
111 |
| - Wire.beginTransmission(_deviceAddr); |
112 |
| - Wire.write(static_cast<uint8_t>(reg)); |
113 |
| - Wire.write(portA); |
114 |
| - Wire.write(portB); |
115 |
| - Wire.endTransmission(); |
| 112 | + _bus->beginTransmission(_deviceAddr); |
| 113 | + _bus->write(static_cast<uint8_t>(reg)); |
| 114 | + _bus->write(portA); |
| 115 | + _bus->write(portB); |
| 116 | + _bus->endTransmission(); |
116 | 117 | }
|
117 | 118 |
|
118 | 119 |
|
119 | 120 | uint8_t MCP23017::readRegister(MCP23017_REGISTER reg)
|
120 | 121 | {
|
121 |
| - Wire.beginTransmission(_deviceAddr); |
122 |
| - Wire.write(static_cast<uint8_t>(reg)); |
123 |
| - Wire.endTransmission(); |
124 |
| - Wire.requestFrom(_deviceAddr, (uint8_t)1); |
125 |
| - return Wire.read(); |
| 122 | + _bus->beginTransmission(_deviceAddr); |
| 123 | + _bus->write(static_cast<uint8_t>(reg)); |
| 124 | + _bus->endTransmission(); |
| 125 | + _bus->requestFrom(_deviceAddr, (uint8_t)1); |
| 126 | + return _bus->read(); |
126 | 127 | }
|
127 | 128 |
|
128 | 129 | void MCP23017::readRegister(MCP23017_REGISTER reg, uint8_t& portA, uint8_t& portB)
|
129 | 130 | {
|
130 |
| - Wire.beginTransmission(_deviceAddr); |
131 |
| - Wire.write(static_cast<uint8_t>(reg)); |
132 |
| - Wire.endTransmission(); |
133 |
| - Wire.requestFrom(_deviceAddr, (uint8_t)2); |
134 |
| - portA = Wire.read(); |
135 |
| - portB = Wire.read(); |
| 131 | + _bus->beginTransmission(_deviceAddr); |
| 132 | + _bus->write(static_cast<uint8_t>(reg)); |
| 133 | + _bus->endTransmission(); |
| 134 | + _bus->requestFrom(_deviceAddr, (uint8_t)2); |
| 135 | + portA = _bus->read(); |
| 136 | + portB = _bus->read(); |
136 | 137 | }
|
137 | 138 |
|
138 | 139 | #ifdef _MCP23017_INTERRUPT_SUPPORT_
|
|
0 commit comments