Herunterladen Inhalt Inhalt Diese Seite drucken
Inhaltsverzeichnis

Werbung

4.4.3.
„>" – Makro-Ausführung starten
Sobald im Makrospeicher eine Anweisungsfolge abgelegt worden ist, kann diese mit dem „>"-Befehl direkt
ausgeführt werden. Dem „>"-Zeichen folgt dabei die Adresse ab der das USB-I2C-Interface die Anweisungen
abarbeiten soll. Die Adresse wird dabei im Auslieferungszustand (Parameter Y60) in Hexadezimalschreib-
weise mit zwei Ziffern angegeben. Wird der Parameter Y61 eingestellt, so erfolgt die Angabe der Speicher-
adresse in Dezimalschreibweise mit 3 Ziffern.
Äußerst nützlich für periodisch ablaufende Programme ist es, wenn am Ende einer Anweisungsfolge im
Makrospeicher >00 steht (>000 in Dezimalschreibweise), da die Abarbeitung dann immer wieder automa-
tisch von vorne beginnt. Natürlich kann hier auch eine andere Einsprungsadresse angegeben werden, damit
nach dem ersten Durchlauf beispielsweise nicht alles, sondern nur ein Teil periodisch wiederholt wird. So
kann zwischen einem einmaligen Konfigurationsteil und einem periodischen Ausführungsteil im Programm
unterschieden werden (siehe folgendes Beispiel, dass auf dem in der ELV-Bauanleitung beschriebenen
A/D-Wandler basiert, der zum Programmstart einmal konfiguriert wird).
Beispiel:
[Anweisungsfolge ab Adresse 0x00 in Makrospeicher schreiben, die später ab 0x06 wiederholt werden soll]
V00{S90 05 R04 L00FF . P >06}
[Ausführung in Adresse 0x00 starten]
>00
Antwort:
02 01 FE 89
09 03 FF 89
0E 01 FF 8A
...
Hinweis:
Während das USB-I2C-Interface ein Makro ausführt, reagiert es auf keine neuen Befehle vom PC. Einzige
Ausnahme ist der Befehl zum Beenden einer Makroausführung („<" oder „<<"). Weitere Infos zum Beenden
eines Makros finden sich im Kapitel 4.4.4.
4.4.4.
„<" – Makro-Ausführung beenden
Der Befehl „<" beendet eine laufende Makroausführung, sobald diese bis zum Ende der Anweisungsfolge
ausgeführt worden ist. Sprungbefehle (z. B. >00) werden nach der Eingabe des Ende-Befehls nicht mehr
ausgeführt, so dass eine periodisch ablaufende Anweisungsfolge nicht immer wieder aufgerufen wird.
Je nach Inhalt der gespeicherten Anweisungsfolge kann es also längere Zeit dauern, bis das Programm fer-
tig abgearbeitet wurde. Dies gilt insbesondere beim Einsatz von Wartepause (Befehl: L), die jeweils bis zu 65
Sekunden dauern können.
Soll das Ende der Anweisungsfolge nicht abgewartet werden, kann die Ausführung auch augenblicklich mit
einer zweiten Stopp-Anweisung (also mit „<<") beendet werden. Da bei dem Sofort-Stopp-Befehl („Instant-
Stop") der Zustand des I²C-Busses in einem undefinierten Zustand bleiben kann, führt das USB-I2C-Interface
nach dem Sofort-Stopp einen Reset aus. Nach dem Reset wird ein im Makrospeicher befindliches Makro
auch dann nicht ausgeführt, wenn der Parameter Y50 eingestellt ist. Das USB-I2C-Interface wartet anschlie-
ßend also wieder auf neue Anweisungen.
<
Beendet Makro-Ausführung nach komplettem Durchlauf oder vor nächster „>"-Anweisung.
<<
Beendet das Makro sofort, führt einen Reset aus und startet das Makro nicht wieder neu.
Auf eine einfache Stopp-Anweisung („<") gibt das USB-I2C-Interface keine Antwort zurück.
Auf eine Sofort-Stopp-Anweisung („<<") gibt das USB-I2C-Interface die folgende Antwort zurück:
„Instant Stop -> Reset..."
28

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis