Herunterladen Inhalt Inhalt Diese Seite drucken

R" - Lese Daten Vom Zuletzt Adressierten Slave; Warte Mit Ausführung Bis Zeilenumbruch - elv USB-I2C Handbuch

Inhaltsverzeichnis

Werbung

4.1.4.
„R" – Lese Daten vom zuletzt adressierten Slave
Der Lese-Befehl R (Read) ermöglicht eine verkürzte Schreibweise. Er kann erst verwendet werden, nachdem
die Startbedingung S und die Geräte-Adresse mindestens einmal übertragen worden sind. Der Befehl R lässt
das USB-I2C-Interface eine Start-Bedingung auf dem I²C-Bus ausführen und liest die nachfolgend angege-
bene Anzahl von Bytes aus dem zuletzt adressierten Gerät aus. Die Geräte-Adresse wird beim R-Befehl also
nicht erneut eingegeben.
Beispiele:
Es sollen dreimal nacheinander je 5 Datenbytes aus dem Slave ausgelesen werden.
Statt nun das Folgende zu senden...
[Start] [Read-Adr:0x41] [Bytezahl:0x05] [Start] [Read-Adr:0x41] [Bytezahl:0x06] [Stopp] [Start] [Read-Adr:0x41] [Bytezahl:0x07] [Stopp]
S41 05
S41 06 P
...ist mit dem R-Befehl eine kürzere Schreibweise möglich, die folgendermaßen aussieht (der R-Befehl funkti-
oniert sowohl mit als auch ohne vorherige Stopp-Bedingung):
[Start] [Read-Adr: 0x41] [Byteanzahl: 0x05] [Read] [Byteanzahl: 0x06] [Stopp] [Read] [Byteanzahl: 0x07] [Stopp]
S41 05
R06 P
R07
Die Ausgabe der gelesenen Daten zum PC ist in beiden Fällen exakt gleich und könnte z.B. so aussehen:
FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF FF
Hinweis 1:
Die übersichtliche Formatierung der Rückgabewerte mit Leerzeichen zwischen den Einzelwerten und mit
einem Zeilenumbruch nach Abschluss jedes Lese-Befehls, erfolgt vollautomatisch durch das USB-I2C-
Interface (Konfiguration im Auslieferungszustand).
Möchte man beispielsweise den Datenverkehr reduzieren und auf die Leerzeichen verzichten, so ist dies mit
dem Konfigurationsbefehl Y41 möglich (siehe Kapitel 4.2.5.).
Möchte man zudem die automatischen Zeilenumbrüche abschalten, so ist dies mit dem Konfigurationsbefehl
Y01 möglich (siehe Kapitel 4.2.5.).
Hinweis 2:
Welche Geräte-Adresse zuletzt verwendet wurde, lässt sich mit dem Status-Befehl (?) prüfen.
4.1.5.
„:" – Warte mit Ausführung bis Zeilenumbruch
Der Doppelpunkt-Befehl (:) wird nur dann benötigt, wenn eine Befehlskette erst vollständig in den Eingabe-
puffer des USB-I2C-Interface übernommen werden soll, bevor das Interface deren Ausführung startet.
Sobald das USB-I2C-Interface einen Doppelpunkt empfangen hat, wartet es solange mit der Ausführung aller
nachfolgenden Befehle, bis es entweder das Steuerzeichen für Zeilenvorschub (Line Feed = LF = 0x0A) oder
für Wagenrücklauf (Carriage Return = CR = 0x0D) empfängt. Diese Zeichen entsprechen dem Drücken der
Eingabe/Enter-Taste.
Dies kann sinnvoll sein, wenn ein Terminalprogramm verwendet wird, das jedes eingegebene Zeichen sofort
überträgt. In dem Fall wäre die Ausführung also abhängig von der Geschwindigkeit der Zeicheneingabe, was
in vielen Fällen sicherlich nicht erwünscht ist. Gibt man dagegen als erstes einen Doppelpunkt ein, wird die
Ausführung der nachfolgenden Befehle solange unterbunden, bis ein Zeilenumbruch (Enter/Eingabe-Taste
bzw. das ASCII-Steuerzeichen 0x0D oder 0x0A) übertragen wird.
Sinnvoll kann der Doppelpunkt-Befehl auch bei einer relativ geringen Verbindungsgeschwindigkeit (z. B.
4800 bit/s) sein, wenn bei zeitkritischen Anwendungen Fehler durch die Übermittlungsverzögerungen ausge-
schlossen werden und die Anweisungen möglichst unmittelbar nacheinander ausgeführt werden sollen.
Hinweis 1:
Der Eingangspuffer des USB-I2C-Interface ist 400 Zeichen groß. Werden mehr als 400 Zeichen in den
Puffer geschrieben, führt das zu einem Überlauf bei dem Zeichen verloren gehen. Dadurch wäre die Ausfüh-
rung der Anweisungen nicht mehr sichergestellt. Aus diesem Grund führt das USB-I2C-Interface bei einem
S41 07
P
P
14

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis