wieso schaltest du ständig zwischen Ausgang und Eingang um und machst den Pull-Up an und wieder aus? Das sollte 1x zu setzen sein und dann ist gut -- du brauchst doch nur noch den Pegel ändern durch an- und ausschalten vom PIN.
Mach mal deine Initialisierung global und schraub nicht ständig an allen Parametern gleichzeitig rum.