Thomas Finke :
Dafür braucht's kein Multitasking, jedenfalls dann nicht, wenn man nicht gleichzeitig rechnen und anzeigen will. Ein praktisches Beispiel findest Du hinter
Es geht nur um die beiden Schnipsel "display" und "convert". Das ist m.E. kurz genug, um ohne weitere Erklärung verständlich zu sein.
Realisiert wird so ein zweistufiger Multiplex, es leuchten immer maximal zwei Segemente gleichzeitig. Das Ergebnis ist brauchbar, wie man dem (unretouchierten) Foto sieht.
N.B. In - simulierter - Aktion kann man sich das übrigens auf
Wollte man gleichzeitig rechnen und anzeigen, würde man den Zustandswechsel (quasi die "inner loop") in der (hier stillgelegten) Interruptroutine erledigen. Das erfordert immer noch keine Zeitverwaltung.
Na ja, eigentlich nur einmal. :-)
M.E. genau so: in der "idle loop" werden die einzelnen Segemente in einem festen Schema angesteuert (in meinem Beispiel also nacheinander alle vier Anzeigen, dann innerhalb einer Anzeige vier Blöcke a jeweils zwei Segmente). Natürlich ist das an einige Bedingungen geknüpft (beispielsweise sollte der Test, so vorhanden, ob die idle-loop verlassen werden soll, nicht lange und vor allen Dingen nicht variabel lang dauern), aber Du fragtest ja nach "am einfachsten".