# Initialise the IOPi and create an instance called io. """ io = IO() # Set all pins on the IO bus to be inputs with internal pull-ups disabled. io.set_port_pullups(0, 0x00) io.set_port_pullups(1, 0x00) io.set_port_direction(0, 0xFF) io.set_port_direction(1, 0xFF) # Set the interrupt polarity to be active high and mirroring disabled, so # pins 1 to 8 trigger INT A and pins 9 to 16 trigger INT B io.set_interrupt_polarity(1) io.mirror_interrupts(0) # Set the interrupts default value to trigger when 5V is applied to pins 1 # and 16 io.set_interrupt_defaults(0, 0x01) io.set_interrupt_defaults(0, 0x80) # Set the interrupt type to be 1 for ports A and B so an interrupt is # fired when the pin matches the default value io.set_interrupt_type(0, 1) io.set_interrupt_type(1, 1) # Enable interrupts for pins 1 and 16 io.set_interrupt_on_pin(1, 1) io.set_interrupt_on_pin(16, 1)
io = IO(bus) # Set all pins on the IO bus to be inputs with internal pull-ups enabled. io.set_port_pullups(0, 0xFF) io.set_port_pullups(1, 0xFF) io.set_port_direction(0, 0xFF) io.set_port_direction(1, 0xFF) # invert the ports so pulling a pin to ground will show as 1 instead of 0 io.invert_port(0,0xFF) io.invert_port(1,0xFF) # Set the interrupt polarity to be active high and mirroring enabled, so # pin 1 will trigger both INT A and INT B when a pin is grounded io.set_interrupt_polarity(1) io.mirror_interrupts(1) # Set the interrupts default value to 0 io.set_interrupt_defaults(0, 0x00) io.set_interrupt_defaults(1, 0x00) # Set the interrupt type to be 1 for ports A and B so an interrupt is # fired when a state change occurs io.set_interrupt_type(0, 0x00) io.set_interrupt_type(1, 0x00) # Enable interrupts for pin 1 io.set_interrupt_on_port(0, 0x01) io.set_interrupt_on_port(1, 0x00)