import smbus
import time

bus = smbus.SMBus(1) # Rev 2 Pi

DEVICE = 0x20 # Device Adresse (A0-A2)
IODIRA = 0x00 # Pin Register fuer die Richtung
IODIRB = 0x01 # Pin Register fuer die Richtung
OLATB = 0x15  # Register fuer Ausgabe (GPB)
GPIOA = 0x12  # Register fuer Eingabe (GPA)

# Definiere GPA-Pin 7 als Input (10000000 = 0x80)
# (0 bedeutet Output, 1 bedeutet Input)
bus.write_byte_data(DEVICE,IODIRA,0x80)

# Definiere alle GPB-Pins als Output (00000000 = 0x00)
# und setze alle Output bits auf 0
bus.write_byte_data(DEVICE,IODIRB,0x00)
bus.write_byte_data(DEVICE,OLATB,0)

# Funktion, die alle LEDs aufleuchten laesst.
def blink():
  for Count in range(0,8):
    # nacheinader alle LEDs blitzen lassen
    LED = 1 << Count
    bus.write_byte_data(DEVICE,OLATB,LED)
    time.sleep(1)
    # LED ausschalten
    bus.write_byte_data(DEVICE,OLATB,0)

# Schleife, die auf Tastendruck wartet und dann Action macht
while True:
  # Status von GPIOA Register auslesen
  Taste = bus.read_byte_data(DEVICE,GPIOA)
  if (Taste & 0x80) > 0:
    blink()

