Hupe, Blinker, Fernlicht steuern für Cafe Racer

Hier wäre der Link zur angepassten Pin Lib
Damit würden die häßlichen defines wegfallen und man arbeitet mit Objekten.
Ich kann nicht einschätzen ob das dem TO hilft bzw. ob er damit klarkommt.
Das wäre wieder so ein Sprung von 0 auf 100. Müßte man langsam angehen.
Auf der anderen Seiten sind Bsp. dabei die, soweit meine Hoffnung, selbsterklärend sein sollten.

Was man sich auch anschauen / nutzen kann ist MegaCoreX. Hätte man zum Bsp. mehrere Serielle im Hand umdrehen usw. zur Verfügung. Das schnelle Pin schalten wird intern mit defines gemacht. Die Funktionsnamen sind eher Arduino "kompatibel" bzw. ähnlich gehalten.

speziell @ TO:
Wenn ich mir das Eingangsprogramm so anschaue, würde ich auch sagen, auch wenn es schon gesagt wurde, dass man die delays durch millis Anwendung ersetzen sollte. In dem Zuge werden dann keine Interrupts benötigt, weil nichts mehr blockiert und damit Polling ausreichend ist. Je nach Lernfortschritte könnte man zusammengehörende Dinge in struct's verpacken, was mehr Übersicht bringt und damit mehr Sicherheit. Das wäre schon ein ganz großer Schritt denke ich. Ob du bei digitalRead, digitalWrite bleibts oder eine andere Pin Lib verwendest, hat mit all dem erstmal wenig zu tun. Das ist dann die übernächste Optimierungsstufe, wenn das andere verstanden wurde. Dabei gehts dann mehr um Schnelligkeit und Objektprogrammierung.