gosub GET_IRDATA
gosub SEND_IRDATA
gosub REC80
gosub REC80_INT
gosub RC5
gosub RC5_INT
SYS COMNAV_STATUS
Die Formate lassen für Adresse und Kommando folgenden Wertebereich zu:
LBYTE
Byte 1 (Wert 0...63 - RC5 ) (Wert 0...127 - REC 80 )
HBYTE
Byte 2 (Wert 0...63 - RC5 ) (Wert 0.....63 - REC 80 )
Beim Zugriff auf IRCOMM gelten folgende Vereinbarungen:
1) Der Zugriff wird bis zu 20ms verzögert ausgeführt, wenn IRCOMM gerade ein IR-Signal empfängt oder
sendet.
2) Zu anderer Zeit wird der Zugriff sofort ausgeführt und ist nach 3ms beendet. In dieser Zeit kann kein
IR-Signal empfangen werden und geht evtl. verloren
3) IRCOMM kann mit gosub GET_IRDATA direkt abgefragt werden. Ist jedoch das ACS in Betrieb
( und damit häufige Zugriffe mit SYS COMNAV_STATUS auf das Subsystem notwendig), ist es besser
das FLAG in SYSTEM_STATUS (siehe ACS) auszuwerten und den empfangenen Code nur im Bedarfsfall
abzufragen.
4) IRCOMM ist wie das ACS auch interruptfähig. Der Interrupt wird gelöscht, wenn das Statusregister mit
SYS COMMNAV_STATUS gelesen wird. Das Ergebnis wird an SYSTEM_STATUS übertragen und die
Flags geben Auskunft was den Interrupt ausgelöst hat (siehe ACS)
Senden von Telemetriedaten RC5
Wenn man sich das Datenformat ansieht, stellt man fest, dass weder in die ADRESSE, noch in das KOM-
MANDO ein ganzes Byte passt. Deshalb formatieren die Systemroutinen die Telemetriedaten so, dass das
Datenbyte auf c0 bis a1 verteilt ist . In a2 bis a4 und T ist der Messkanal, damit man mehrere Datenkanäle
übertragen kann (bis zu 16 Kanäle)
Das sieht dann so aus:
Der modifizierte RC5 IR-Datenrahmen:
S
S
T
1
1
CH3
SYS SEND_TLM
SYS SEND_SYSSTAT
SYS SEND_SPEEDL
SYS SEND_SPEEDR
Gosub GET_TLM
Der Messkanal (0-15) wird in HBYTE übergeben, in LBYTE steht der Messwert (0-255), der Aufruf von SYS
SEND_TLM formatiert die Daten wie oben gezeigt und sendet sie.
Sie können den Kanälen 0 bis 15 beliebige Sensoren zuordnen. Wenn die Telemetriedaten auf der Empfän-
ger-seite ausgewertet werden, muss diese Formatierung natürlich wieder rückgängig gemacht werden. Die
Programmbeispiele zur Telemetrie stellen eine entsprechende Routine zur Verfügung.
Adressierter Modus
Sind mehrere Roboter in Betrieb und sollen untereinander kommunizieren, so lassen sich die Roboter
jeweils mit einer Adresse versehen unter welcher sie sich im Netzwerk identifizieren. Dazu werden die bei-
den Formate so abgewandelt, dass jeweils eine 3Bit Sender/Empfänger-Adresse (also für bis zu 7 Einheiten)
im Rahmen steckt.
Damit ist dann noch Platz für ein 6 Bit-Kommando (also 64 Kommandos)
;liefert empfangene IR-Daten in HBYTE (A) und LBYTE (C)
;Sendet die Daten in HBBYTE (A) und LBYTE (C)
;Stellt das Format ein
;Aktiviert den Interruptbetrieb mit REC80 Format
;Stellt das Format ein
;Aktiviert den Interruptbetrieb mit RC5 Format
;Abfrage des ACS/IRCOMM (siehe ACS)
A4
A3
A2
CH2
CH1
CH0
;Formatiert und sendet die Werte in HBYTE und LBYTE
;Sendet SYSTEMSTATUS (feste Kanalzuweiseung 0 )
;Sendet die Werte der PLM DA/-Wandler (feste Kanalzuweiseung 7 und 8 )
;liest Telemetriedaten von IRCOMM und trennt Messkanal und Daten
(jeweils FF wenn nichts empfangen wurde)
A1
A0
C5
b7
b6
b5
C4
C3
C2
b4
b3
b2
C1
C0
b1
b0
13