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)