public class MCP23017Old extends AbstractDeviceFactory implements GpioDeviceFactoryInterface, InputEventListener<DigitalInputEvent>
The MCP23X17 consists of multiple 8-bit configuration registers for input, output and polarity selection. The system master can enable the I/Os as either inputs or outputs by writing the I/O configuration bits (IODIRA/B). The data for each input or output is kept in the corresponding input or output register. The polarity of the Input Port register can be inverted with the Polarity Inversion register. All registers can be read by the system master.
The 16-bit I/O port functionally consists of two 8-bit ports (PORTA and PORTB). The MCP23X17 can be configured to operate in the 8-bit or 16-bit modes via IOCON.BANK.
There are two interrupt pins, INTA and INTB, that can be associated with their respective ports, or can be logically OR'ed together so that both pins will activate if either port causes an interrupt. A special mode (Byte mode with IOCON.BANK = 0) causes the address pointer to toggle between associated A/B register pairs. For example, if the BANK bit is cleared and the Address Pointer is initially set to address 12h (GPIOA) or 13h (GPIOB), the pointer will toggle between GPIOA and GPIOB. Note that the Address Pointer can initially point to either address in the register pair.
Modifier and Type | Class and Description |
---|---|
static class |
MCP23017Old.MCP23017DigitalInputDevice |
static class |
MCP23017Old.MCP23017DigitalOutputDevice |
closed, deviceStates
Constructor and Description |
---|
MCP23017Old() |
MCP23017Old(int interruptGpio) |
MCP23017Old(int interruptGpioA,
int interruptGpioB) |
MCP23017Old(int controller,
int address,
int interruptGpio) |
MCP23017Old(int controller,
int address,
int interruptGpioA,
int interruptGpioB) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
closePin(int gpio) |
GpioDigitalInputDeviceInterface |
createDigitalInputDevice(String key,
PinInfo pinInfo,
GpioPullUpDown pud,
GpioEventTrigger trigger) |
GpioDigitalInputOutputDeviceInterface |
createDigitalInputOutputDevice(String key,
PinInfo pinInfo,
DeviceMode mode) |
GpioDigitalOutputDeviceInterface |
createDigitalOutputDevice(String key,
PinInfo pinInfo,
boolean initialValue) |
BoardPinInfo |
getBoardPinInfo() |
String |
getName() |
boolean |
getValue(int gpio) |
protected byte |
readByte(int register) |
void |
setValue(int gpio,
boolean value) |
void |
valueChanged(DigitalInputEvent event) |
protected void |
writeByte(int register,
byte value) |
createPinKey, deviceClosed, deviceOpened, getDevice, isClosed, isDeviceOpened
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
provisionDigitalInputDevice, provisionDigitalInputOutputDevice, provisionDigitalOutputDevice
createPinKey, deviceClosed, deviceOpened, isClosed, isDeviceOpened
public MCP23017Old() throws RuntimeIOException
RuntimeIOException
public MCP23017Old(int interruptGpio) throws RuntimeIOException
RuntimeIOException
public MCP23017Old(int interruptGpioA, int interruptGpioB) throws RuntimeIOException
RuntimeIOException
public MCP23017Old(int controller, int address, int interruptGpio) throws RuntimeIOException
RuntimeIOException
public MCP23017Old(int controller, int address, int interruptGpioA, int interruptGpioB) throws RuntimeIOException
RuntimeIOException
public String getName()
getName
in interface DeviceFactoryInterface
public GpioDigitalInputDeviceInterface createDigitalInputDevice(String key, PinInfo pinInfo, GpioPullUpDown pud, GpioEventTrigger trigger)
createDigitalInputDevice
in interface GpioDeviceFactoryInterface
public GpioDigitalOutputDeviceInterface createDigitalOutputDevice(String key, PinInfo pinInfo, boolean initialValue)
createDigitalOutputDevice
in interface GpioDeviceFactoryInterface
public GpioDigitalInputOutputDeviceInterface createDigitalInputOutputDevice(String key, PinInfo pinInfo, DeviceMode mode)
createDigitalInputOutputDevice
in interface GpioDeviceFactoryInterface
public boolean getValue(int gpio) throws RuntimeIOException
RuntimeIOException
public void setValue(int gpio, boolean value) throws RuntimeIOException
RuntimeIOException
public void close() throws RuntimeIOException
close
in interface DeviceFactoryInterface
close
in interface Closeable
close
in interface AutoCloseable
close
in class AbstractDeviceFactory
RuntimeIOException
public void closePin(int gpio) throws RuntimeIOException
RuntimeIOException
public void valueChanged(DigitalInputEvent event)
valueChanged
in interface InputEventListener<DigitalInputEvent>
protected void writeByte(int register, byte value)
protected byte readByte(int register)
public BoardPinInfo getBoardPinInfo()
getBoardPinInfo
in interface DeviceFactoryInterface
Copyright © 2016–2017 mattjlewis. All rights reserved.