Open
Description
Hi all,
I am having a problem with interrupts when using multiple PiFace boards. I have a Model A Pi connected to multiple PiFace boards via a PiFace Rack.
If I have only 1 PiFace connected I can receive interrupts fine. Once I connect a second PiFace with different hardware address my interrupts are no longer received.
I have tried receiving interrupts using pifacecommon and pifacedigitalio methods.
pifacedigitalio test code is as follows
import pifacedigitalio as p
import pifacedigitalio.version as pfdioV
import pifacecommon.version as pfcV
import time
quit = False
def print_flag(event):
print("You pressed button ", event.pin_num)
def stop_listening(event):
global quit
quit = True
p.init()
print("pifacedigitalio version = ", pfdioV.__version__)
print("pifacecommon version = ", pfcV.__version__)
pfd = p.PiFaceDigital(0)
l = p.InputEventListener(pfd)
l.register(0, p.IODIR_OFF, print_flag)
l.register(1, p.IODIR_OFF, print_flag)
l.register(2, p.IODIR_OFF, print_flag)
l.register(3, p.IODIR_OFF, stop_listening)
l.activate()
while not quit:
time.sleep(1)
l.deactivate()
pifacecommon test code is
import pifacecommon.core
import pifacecommon.interrupts
import pifacecommon.mcp23s17
import time
quit = False
def print_flag(event):
print("You pressed button ", event.pin_num)
def stop_listening(event):
global quit
quit = True
port = pifacecommon.mcp23s17.GPIOB
chip = pifacecommon.mcp23s17.MCP23S17()
listener = pifacecommon.interrupts.PortEventListener(chip=chip, port=port)
listener.register(0, pifacecommon.interrupts.IODIR_FALLING_EDGE, print_flag)
listener.register(1, pifacecommon.interrupts.IODIR_FALLING_EDGE, print_flag)
listener.register(2, pifacecommon.interrupts.IODIR_FALLING_EDGE, print_flag)
listener.register(3, pifacecommon.interrupts.IODIR_FALLING_EDGE, stop_listening)
listener.activate()
while not quit:
time.sleep(1)
listener.deactivate()
Not sure if I am missing something or if there is an issue. I have tried on multiple PIs using multiple PiFaces.
Metadata
Metadata
Assignees
Labels
No labels