Kosmos-Mikrocontroller

Beispielprogramme


Verbesserte Digitalanzeige

 von Peter Dematté

Letzte Weihnacht hatte ich mir den 'microcontroller electronic' gekauft um etwas in die Technik der Controller einzutauchen. Ich bin sehr begeistert von diesem Baukasten.

Beim Kapitel 48 'Zweistellig - 00 bis 99' hatte ich zuerst Probleme mit dem Programm im 'zweistellen.k', da ich eine Weile brauchte um zu verstehen, wie
die Logik hinter der Darstellung dezimaler Zahlen ist. ...

Lange Rede, kurzer Sinn: Ich habe in mehreren Schritten den Code optimiert und spare mir nun 8 Programmzeilen ohne es schwieriger zu machen, das Programm zu verstehen. Es ist teilweise nur ein anderer Ansatz. Das Programm erzielt wie bisher die gleichen Anforderungen, auch das Wiedergeben der Speicherplätze A und D. Da dieser Programmteil in vielen anderen Programmen verwendet wird, sehe ich es als Vorteil, Programmspeicher für Anderes zu sparen.

Ich beschränke mich im folgenden Listing nur auf die Ausgabe der Zahlen und habe an die relevanten Zeilen (Änderungen) Kommentare mit einem // angehängt:

L9: Ausgabe
B = 99
If A < B Goto LA:
A = 99
LA:
B = 2   // Die Reihenfolgeänderung brint keine Vorteile beim
Abspeichern...
[B+] = A
B = 1   // ... aber man spart sich wieder eine Zeile beim Auslesen am Ende
A = D
[B+] = A
A = [B+]
D = A   // wichtig: dadurch spart man sich später B = 1; A = [B+]; D = A;
B = 10
A = A / B
A = A Or 16  // anstatt B = 16; A = A + B; ... also nur das 5te Bit setzen
Portout = A
Delay = 2
A = A And 239  // das Bit an 5er Stelle wieder löschen (Spart Auslesen)
A = A * B  // B muss nun auch nicht mehr neu geladen werden
B = A
A = D
A = A - B
Portout = A
Delay = 2
B = 1   // Ab hier wird also noch eine Zeile gespart (wie oben erwähnt)
A = [B+]
D = A
A = [B+]
Return
End

Download: Zweistellen.k (Zweistellen.zip, 1 KB)