forked from adafruit/Adafruit-MCP23017-Arduino-Library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdafruit_MCP23X17.cpp
68 lines (60 loc) · 2.47 KB
/
Adafruit_MCP23X17.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*!
* @file Adafruit_MCP23X17.cpp
*/
#include "Adafruit_MCP23X17.h"
/**************************************************************************/
/*!
@brief default ctor.
*/
/**************************************************************************/
Adafruit_MCP23X17::Adafruit_MCP23X17() { pinCount = 16; }
/**************************************************************************/
/*!
@brief Bulk read all pins on Port A.
@returns current pin states of port as a uint8_t.
*/
/**************************************************************************/
uint8_t Adafruit_MCP23X17::readGPIOA() { return readGPIO(0); }
/**************************************************************************/
/*!
@brief Bulk write all pins on Port A.
@param value pin states to write as uint8_t.
*/
/**************************************************************************/
void Adafruit_MCP23X17::writeGPIOA(uint8_t value) { writeGPIO(value, 0); }
/**************************************************************************/
/*!
@brief Bulk read all pins on Port B.
@returns current pin states of port as a uint8_t.
*/
/**************************************************************************/
uint8_t Adafruit_MCP23X17::readGPIOB() { return readGPIO(1); }
/**************************************************************************/
/*!
@brief Bulk write all pins on Port B.
@param value pin states to write as uint8_t.
*/
/**************************************************************************/
void Adafruit_MCP23X17::writeGPIOB(uint8_t value) { writeGPIO(value, 1); }
/**************************************************************************/
/*!
@brief Bulk read all pins on Port A and B.
@returns current pin states of ports as a uint16_t.
*/
/**************************************************************************/
uint16_t Adafruit_MCP23X17::readGPIOAB() {
Adafruit_BusIO_Register GPIO(i2c_dev, spi_dev, MCP23XXX_SPIREG,
getRegister(MCP23XXX_GPIO, 0), 2);
return GPIO.read();
}
/**************************************************************************/
/*!
@brief Bulk write all pins on Port A and Port B.
@param value pin states to write as uint16_t.
*/
/**************************************************************************/
void Adafruit_MCP23X17::writeGPIOAB(uint16_t value) {
Adafruit_BusIO_Register GPIO(i2c_dev, spi_dev, MCP23XXX_SPIREG,
getRegister(MCP23XXX_GPIO, 0), 2);
GPIO.write(value, 2);
}