The message has the following error or errors that must be corrected before continuing:
Unable to publish the post. Please notice you can only post once every 5 minutes
and only edit posts after 30 seconds. Once you reach 100 published posts this limit will be removed.
...ok dann warte ich noch paar minuten bis ich posten darf
PULLUP macht im Hintergrund nichts Anderes, als 'digitalWrite(x,HIGH);' - um den PullUP einzuschalten.
PinMode brauchst Du ja trotzdem, da Du so zwischen IN und OUT unterscheidest.
Und bei OUT setzt digitalWrite den OUTPUT auf HIGH (1) oder LOW (0).
In den Innereien des AVR ist dieses Bit sowohl für den PullUP-Widerstand, wie für den Ausgangstreiber zuständig und die unterschiedliche Funktion kommt nur zustande, weil der Pin 1x ein IN und 1x ein OUT ist.
Also statt erst auf INPUT setzen und dann digitalWrite auf HIGH kannst Du auch INPUT_PULLUP benutzen - unterm Rock sollte sich identischer Code ergeben (sofern die Befehle direkt aneinander stehen, kA, wie weitsichtig der Kompiler ist).
Wenn Du die Eingänge als INPUT belässt (Reset-Zustand) - muß der µC ja nicht Diese erst auf INPUT 'um'stellen.
Denke, Darin ist der Unterschied des Speicherverbrauch zu sehen, da beim pinMode explizit die Richtung eingestellt wird - und dabei ist dem µC egal, was Da vorher drin stand, auch, wenn's das Gleiche ist, wie wieder rein kommt.
Nice²know (nett zu wissen)
Sonst wären mir die 48 Byte erst Mal ... äh ... egal.
Wenn Du so knapp an den Grenzen bist, wird es Dir das Programm, sofern Du nicht auf Alles beachtet hast, um die Ohren hauen
In dem Restspeicher wird der Stack aufgesetzt (wächst von 'ganz hinten/oben nach vorne/unten - Funktionsaufrufe, übergebene Variablen, so Kram kommt Da rein) - Da sind 48 Byte Nichts.
Trotzdem: Informativ, daß ein explizites Setzen auf INPUT (nach Reset, eigentlich unnötig) schon einige Bytes frisst.