Hallo,

da stellt sich mir ersteinmal die Frage: Was für eine Aktualisierungsrate brauchst du?
Ein Ansatz ist, mit einem Timer z.B. alle 10ms einen Interrupt zu erzeugen. Die ISR ruft dann nacheinander alle benötigten Funktionen auf. Stichwort dazu: Kooperatives Multitasking

Dann gibt es noch "leistungsfähigere", kompliziertere Ansätze. Steht ebenfalls in dem Wiki-Artikel.

Ein paar Fragen hätt ich noch:
1. Wo ist deine Main-Funktion?
2. Wo kommt dein "incomingByte" her?
3. Wie kannst du einen Bytewert auf >255 setzen?

Und ein paar Anmerkungen zur leserlichkeit des Codes:
Die Lesbarkeit des Codes erhöht sich deutlich, wenn du einheitliche Notationen verwendest.
Beispiel: Variablennamen beginnen immer mit einem Kleinbuchstaben, Methoden immer mit einem Großbuchstaben. Globale Variablen werden zudem mit einem führenden Unterstrich gekennzeichnet.

Das ist alles Geschmackssache, jeder macht das, was ihm am besten gefällt. ABER man sollte sich durchgängig an seine Notation halten. Noch ein Stichwort: Ungarische Notation. Bin ich zwar auch kein riesen Fan von, ist aber durchaus sinnvoll.

MfG