Spion-Basic Befehlsvorrat und Strukturen


Spion-Basic ist eine sehr kleine und einfache Sprache. Man muss sich vor Augen halten, dass nur 64 Bytes im EEPROM des Prozessors zur Verfügung stehen. Was sind 64 Bytes im Zeitalter von Gigabytes! Trotzdem können äußerst sinnvolle Programme erzeugt werden. Die Programmierumgebung des Programms SPY übersetzt kleine Basic-Programme sehr platzsparend in Tokens, also Zahlen, die für die einzelnen Befehle stehen. Einige Befehle benötigen noch einen Byte-Parameter. Jede Zeile wird also entweder in ein Byte oder in zwei Bytes übersetzt. Insgesamt können Programme also eine maximale Länge zwischen 15 und 31 Zeilen besitzen.

Das Betriebssystem des Spions enthält einen kleinen Interpreter, der Tokens und Parameter aus dem Speicher liest und entsprechende Aktionen ausführt. Alle Befehle funktionieren auch im Online-Modus. Der Anwender kann also Basic-Tokens direkt eingeben und ausführen lassen.

Die Einfachheit der Sprache bringt es mit sich, dass man nicht Zeilen in einen Texteditor eingeben muss, sondern dass komplette Befehlszeilen quasi fertig vorbereitet durch einfaches Anklicken in das Programm übernommen werden. In einigen Fällen muss der Benutzer nur noch einen Parameter auswählen. Auch Konstanten werden durch Anklicken einer Listenposition eingegeben.

Programmieroberfläche für Spion-Basic

Laden Sie zunächst ein fertiges Programm wie z.B. Blink.sbd (siehe Bild). Es stellt einen einfachen Blinkgeber dar. Mit der Schaltfläche Send wird das Programm in lauffähiger Form in den Spion übertragen und sofort gestartet. Sie sehen nun ein gleichmäßiges Blinken der roten LED.

Wenn Sie nun den Spion vom Stecker des PC abziehen, wird das Programm so lange weiter arbeiten, bis der interne Akku erschöpft ist. Sie können aber den Reset-Taster am Gerät drücken und das Programm damit stoppen. Man sieht dann wieder das kurze Blinken im Sekundentakt. Durch erneutes Drücken des Reset-Tasters kann das Programm aber wieder gestartet werden.

Wenn ein Programm geladen ist, kann es fast beliebig lange bereit gehalten werden. Man stoppt es dazu mit Reset vom PC aus oder am Gerät. Ohne weitere Aktionen schaltet sich der Spion nach etwa zwei Minuten ab. Sie können das Gerät dann erst einmal in den Schrank legen. Bei Bedarf nehmen sie es zur Hand und drücken erneut den Resetknopf. Das alte Programm beginnt dann wieder mit seiner Arbeit. Man muss nur beachten, dass ein laufendes Programm natürlich auf die Dauer den Akku entlädt. Insgesamt kann man bis zu 60 Stunden lang mit dem Gerät arbeiten.

Typische Aufgaben für die Programmierung in Spion-Basic sind:


Befehlsvorrat

Spion-Basic kennt direkte Ausgabebefehle für die Ansteuerung der Hardware.

Die wichtigsten Befehle zur Programmsteuerung sind Goto und End. Weitere Sprungbefehle arbeiten zusammen mit Variablen, die weiter unten vorgestellt werden. Wartezeiten zwischen 1/16 s und ca. 15 s erzeugt man mit dem Pause-Befehl. Mit End wird ein Programm beendet und der Grundmodus eingeschaltet. Mit Sleep schaltet man den Spion ab. Programme mit Endlosschleifen müssen den Pause-Befehl verwenden, um das Abschalten in den Sleep-Modus zu verhindern (vgl. hier).

Spion-Basic kennt vier Variablen A, B, C und D. Sie nehmen grundsätzlich nur Bytes auf, also Zahlen im Bereich 0 bis 255.

A dient der Erfassung von Messwerten. Alle Messungen und die Abfrage des digitalen Eingangs weisen ihr Ergebnis A zu. A erhält immer das Ergebnis von Rechenoperationen. Außerdem kann A ein Byte von der seriellen Schnittstelle abfragen oder aussenden.

Alle Messungen mit Sensoren oder Eingängen liefern ihr Ergebnis in A zurück. Man kann in einem Programm mit mehreren Sensoren arbeiten. Bei der Lärmmessung muss beachtet werden, dass intern ein spezieller Verstärker erst eingeschaltet wird. Die erste Messung sollte verworfen werden, weil der Verstärker erst einschwingen muss. Soll nach dem Ende von Lärmmessungen ein anderer Sensor abgefragt werden, dann muss vorher mit "Lärm aus" der Mikrophonverstärker abgeschaltet werden.

Die Variable B dient ausschließlich zum Vergleich mit A (If A > B Goto) und für Rechenoperationen mit A (A = A + B). B kann nur entweder eine Konstante Zahl oder der aktuelle Wert von A zugewiesen werden.


Grundlegende Programmstrukturen

Sehr einfache Programme verwenden lineare Strukturen, d.h. das Programm läuft von der ersten bis zur letzen Zeile einmal durch und wird dann beendet. Das folgende Programm erzeugt nur einen dreifachen Signalton.

Tonerzeugung in Spion-Basic

Oft benötigt man Programme, die in einer Endlosschleife ablaufen. Dann kann der Goto-Befehl eingesetzt werden. Das folgende Beispiel zeigt einen Blinker für die eingebaute LED. Im Gegensatz zum normalen Bereitschafts-Blinken im Direktmodus des Spions mit 1/16 s AN und 15/16 s AUS wird hier ein symmetrisches Signal 1/2 s AN und 1/2 s AUS erzeugt. Ein solches Programm kann auch den digitalen Ausgang ansteuern. Man hat dann einen genauen Impulsgeber mit exakt einem Hertz.

Eine Endlosschleife

Will man einen Vorgang z.B. genau 10 mal wiederholen, dann benötigt man eine Zählvariable C oder D. Das folgende Beispiele erzeugt zehn Ausgangsimpulse. Es muss beachtet werden, dass die Zuweisung der Zählvariablen vor der eigentlichen Schleife liegt. In Zeile 1 wird C = 10 zugewiesen. Der Sprungbefehl in Zeile 6 weist auf Zeile 2.

Die Zählschleife

Oft ist es wichtig, Daten aus einem Spion-Programm heraus an den PC zu senden oder von dort zu empfangen. Man kann damit z.B. die aktive Fehlersuche in Programmen vereinfachen oder auf einfache Weise die Funktion von Befehlen ausprobieren. Aber auch in komplexeren Aufgaben kann die Datenübertragung eine Rolle spielen. Auf der Seite des Spions gibt es die Befehle Input und Print zur Übertragung einzelner Bytes über die RS232-Schnittstelle. Das Programm SPY stellt die passenden Funktionen im Programm-Menü bereit. Mit Send Byte kann ein Byte an den Spion gesandt werden. Jede Antwort des Spions erscheint in der Statuszeile unter dem Quelltextfenster.

Das Beispiel zeigt ein einfaches Rechenprogramm. Ein Zahlenwert wird empfangen, mit 25 addiert und zurückgesandt. Im Test des Programms wird die Zahl 12 vom Programm SPY aus abgesandt. Der Spion antwortet ganz korrekt mit 37.

Die Befehle Print und Input können übrigens auch verwendet werden, um Daten zwischen zwei Spionen auszutauschen. Dazu ist ein spezielles Kabel erforderlich, das die Signalleitungen TXD und RXD kreuzweise verbindet. Diese Verbindung darf aber erst eingesetzt werden, nachdem beide Geräte am PC programmiert und dann vom PC getrennt wurden.