PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : COMNAV_STATUS braucht pause



glowbrain1
24.07.2004, 19:46
Weiß jemand warum der COMNAV_STATUS die falsche Daten zurückliefert wenn man nicht mindestens ein “pause 2” zwischen 2 aufrufe reinsteckt?.

Ist da ein weg drum herum?

Dirk
25.07.2004, 11:58
Hallo glowbrain1,

die Ausführungszeit von COMNAV_STATUS beträgt ja 2 ms, dies ist aber nur ein kleiner Teil des gesamten Vorgangs (ACS oder IR-COMM).
Im Beispiel "3_EINFÜHRUNG_ACS.bas" steht:

Hier wird das ACS mit der SYSTEMROUTINE SYS COMNAV_STATUS zyklisch abgefragt. Zwischen den Abfragen ist eine Pause erforderlich, weil sonst die interne Störunterdrückung im IR-Empfänger aktiviert wird, da das empfangene Signal keinem gültigen Format entspricht und als Störung interpretiert wird. Das Ergebnis der Abfrage steht dann in den Variablen SYSTEM_STATUS.

Das ACS braucht so schnelle Abfragen auch nicht, denn der Robby ist ja keine Rakete, die in 40 ms große Entfernungen zurücklegt (meiner dürfte in dieser Zeit kaum 1 cm weit kommen!). Für IR-COMM ist die Abfragehäufigkeit auch nicht so relevant, da das Subsystem im Hintergrund empfängt und den IR-Code dann zur Verfügung stellt (gosub GET_IRDATA). Falls die Abfrage allzu selten ist, könnte ggf. nur 1 Code verloren gehen, aber welche IR-Quelle sendet so schnell?

Gruß Dirk