ASCII-Ausgabe und HEX-Umwandlung
von Michael Moske
Elektronik-Labor
Projekte
Mikrocontroller
TLSASCII-Ausgabe und HEX-Umwandlung cript
Die TLScript
Firmware ist dafür vorbereitet, dass man relativ leicht eigene Befehle
hinzufügen kann. Es handelt sich dann um Befehlserweiterungen, die keine eigene
Schaltfläche in der IDE haben, sondern mit Call (vormals mit Gosub) wie ein
Unterprogramm aufgerufen werden. In der Hilfe für die einzelnen Controller ist
jeweils ersichtlich, welche erweiterten Befehle bereits existieren. Für alle
gibt es diese Erweiterungen:

Siehe auch
10.3.25: PicoBasic Funktions-Erweiterungen
Die
Unterprogramme werden mit Call L240 bis Call L255 aufgerufen, wobei einige
Adressen ab 247 noch für eigene Erweiterungen frei sind. L247 habe ich schon
verwendet, um einen Zeichensatz für ein OLED zu laden.
Jetzt kam der Wunsch
auf, dass man nicht nur Bytes als Dezimalzahlen mit dem normalen
Print-Befehl
ausgeben kann, sondern auch beliebige andere Zeichen. Mit einer kleinen
Erweiterung geht das nun mit dem CH32V003. Für die anderen Controller
lässt es sich leicht ergänzen. Das in A übergebene Byte wird als
ASCII-Zeichen ausgegeben.
void extensions(void){
if
(dat==240)
…
if
(dat==248){
printf("%c\r\n",a);
// Print char
}
if
(dat==249){}
…
Dieses kleine Testprogramm
liefert eine aufsteigende Zeichenfolge:
Rem ASCII
L1:
0x0141 A = 65
L2:
0x21F8 Call L248:
0x19FA Delay ms = 250
0x2800 A = A + 1
0x0280 B = 128
0x2401 If A<B JMP L2:
0x2000 Jmp L1:
Hexumwandlung

Mit dieser Erweiterung
können nun auch Hexadezimalzahlen dargestellt werden. Das folgende kleine Programm kann verwendet
werden, um beliebige Bytes in Hexzahlen umzuwandeln und dabei den Umgang mit
diesen Zahlensystemen zu trainieren.