Wenn der µC mehrere Dinge tun soll, ist irgendeine Schleife mit "WAIT" auf jeden Fall pfui.
Dazu kann man (z.B.) eine weiteren timer beschäftigen, der vor "wait" gestartet wird und sagt, wann es wieder weitergeht.
However, wenn mehrere Dinge unabhängig laufen sollen und sich aber gegenseitig unterbrechen können, wird es trickreicher.