TLScript Extensions

Elektronik-Labor  Projekte  Mikrocontroller  TLScript  




Es gibt viele Gründe, TLScript um weitere Befehle zu erweitern. Andererseits sind für die einfach gehaltene Oberfläche möglichst wenige Befehle besser. Es wäre also ungünstig, die direkt sichtbaren Befehle zu vermehren. Der Wunsch nach Erweiterungen kam zuerst auf, als es im TestLab die Möglichkeit gab, die PWM-Frequenz und die Spannungsreferenz umzuschalten, dies aber in TLScript nicht möglich war. Die Lösung liegt im Befehl Call L. Normalerweise steht da z.B. Call L2, wobei ein TLScript-Unterprogramm an der Adresse L2 aufgerufen wird. Wenn man aber ein Label ab L240 (0xF0) angibt, werden interne Funktionen ausgeführt, die als Spracherweiterungen dienen.

Mit Call L240 kann man nun die PWM-Frequenz ändern, nachdem in A ein passender Parameter geschrieben wurde. Welche Werte in A man genau übertragen kann, hängt vom jeweiligen Controller ab.

              Rem PWMfreq
0x1080  PWM1 = 128
0x0100  A = 0
0x21F0  Call L240:
0x0200  B = 0
              L1:
0x19FA  Delay ms = 250
0x4100  Input A
0x2204  If A=B Jmp L1:
0x3400  B = A
0x21F0  Call L240:
              Rem PWMfreq
0x2004  Jmp L1:

In gleicher Weise kann man mit Call 241 unterschiedliche Spannungsreferenzen einstellen, die sich ebenfalls stark unterscheiden. Nur der Pico kennt eine solche Einstellung nicht, weil bei ihm die AD-Referenz immer 3,3 V ist. Allerdings kennt der 3,3V-Regler im Pico zwei Modi, die unterschiedliche Welligkeit der Referenz bedingen. Mit Call 241 schaltet man hier in den saubereren Modus. Insgesamt gibt es sieben solche Unterprogramme, die bei allen vier Controllern im Wesentlichen die gleichen Funktionen haben. 

Call L240: PWM-Frequenz
Call L241: ADC-Referenz, 3.3 V beim Pico
Call L242: Schnelle Serienmessung
Call L243: Schnelle Zweikanal-Messung mit Ausgabe
Call L244: Übertragung der Sinustabelle
Call L245: DDS und Scope
Call L246: Sweep-Generator mit Scope
Call L247 bis L255: Noch frei

Der Pico besitzt als einziger keine Umschaltung der AD-Referenz. Call L241 wird hier verwendet, um den 3,3V- Regler in seinen Modus mit glatterer Betriebsspannung zu schalten. Im Help-Fenster findet man zum jeweils eingestellten Controller neben dem Anschlussplan auch die Erweiterungsfunktionen und die erlaubten Parameter. Die noch freien Adressen dienen für eigene Erweiterungen der Firmware. Wer bestimmte Zusatzfunktionen für sein Projekt braucht, kann sie sich leicht einbauen. Davon wurde auch bereits reger Gebrauch gemacht.

Ein Beispiel für die Verwendung mehrerer Extensions ist der DDS-Generator mit gleichzeitig laufendem schnellen Oszilloskop, das mit CALL 254 gestartet wird. Zusätzlich wird am Anfang die PWM-Frequenz des Pico auf 250 kHz erhöht und außerdem mit Call 244 die Sinusfunktion geladen. Mit A = 2 wird im laufenden Programm festgelegt, dass pro Durchlauf zwei ganze Schwingungen erzeugt werden. Die Ausgangsfrequenz ist 1,6 kHz. Man muss das Ausgangssignal von PWM1 glätten und anAD0 legen. Die Anwendung zeigt, dass man mit Extensions höhere Frequenzen erreichet als mit klassischen TLScript-Programmen.

              Rem DDS245 Pico
0x010A  A = 10
0x21F0  Call L240:
              Rem 250 kHz
0x21F4  Call L244:
              Rem Sinus
0x0102  A = 2
              Rem 1,6 kHz
              L1:
0x1A01  Delay s = 1
0x21F5  Call L245:
              REM DDS
0x2004  Jmp L1:



Die Übersicht der verwendbaren Extensions findet man jederzeit in der Help-Funktion (Siehe Bild ganz oben) zum jeweils aktiven Controller. Die Exstensions Call L247 bis L255 sind meist noch frei. Damit hat jeder die Möglichkeit, eigene Erweiterungen einzufügen, ohne dass die IDE verändert werden muss. In jeder der vier Firmware-Versionen für die einzelnen Controller findet man die Funktion void extensions(void), die man passend erweitern kann.

Beim CH32V003 wurden zahlreiche weitere Erweiterungsfunktionen hinzugefügt. Man kann dort Rechtecksignale bis 24 MHz erzeugen, ein Oszilloskop mit einer Abtastrate von 500 kHz aufrufen und vieles mehr. Um die vielen Funktionen unterzubringen wurde eine neue Gruppe unter Call 250 gebildet, in der man mit B bis zu 255 neue Extensions unterbringen könnte. Als einziger der Controller erhält der CH32V003-Controller die Möglichkeit, einzelne Ports als Open-Drain-Ausgänge zu nutzen. Auch gibt es hier mehrere weitere Messgeräte.


 

Elektronik-Labor  Projekte  Mikrocontroller  TLScript