Ein Problem / Missverständnis zwischen Addi und Hauke ist eventuell der Begriff "Programm"
Eine Funktion wie Addi sie beschrieben hat, ist sofort fertig und muss nicht wirklich unterbrochen werden, bis das Rechteck gezeichnet ist.
(Na gut, im Hintergrund laufen noch Zähler und Interrupts können erfasst werden, aber das soll hier jetzt nicht interessieren)
Ein Programm von Hauke ist eher das, was z.B. in einer Waschmaschine als Programm abläuft und nach vielleicht einer Stunde fertig ist.
Auch die einzelnen Unterprogramm-Schritte brauchen richtig Zeit.
Beim Programmieren eines Arduino hat man Addis Programm-Konzept zur Verfügung, will aber Haukes Programm realisieren.
Im ersten Ansatz ist alles ziemlich einfach, dafür gibt es delay() und while(analogRead(Temp) < Soll) { Heizen(); } und ähnliche Konstruktionen.
Mit etwas Glück kriegt man sogar ein Programm hin, das nach einer gewissen Zeit fertig ist und die gewünschte Arbeit gemacht hat. ( 1s LED an, 1s LED aus )
Die Frage ist dann, was macht ein Arduino, wenn das Programm fertig ist.
Es sollte klar sein, dass das was in loop() Programmzeile für Zeile abläuft und was man mit Addis Programmiertechnik realisiert, eigentlich auf einer ganz anderen Ebene existiert (oder zumindest sollte), als Haukes "Programm".
Tschuldigung, wenn das alles off-topic ist und Addi Haukes Frage perfekt beantwortet hat.
Ist mir nur mal so, am Beispiel von Haukes Programm-Beschreibung aufgefallen.