-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Frage zum Entfernungssensor

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.11.2004
    Alter
    31
    Beiträge
    49

    Frage zum Entfernungssensor

    Anzeige

    Hallo zusammen

    Ich hab eine Frage zum Beispielprogramm 4 EINFÜHRUNG ENTFERNUNGSSENSOR. Da ist ein Befehl, den ich nicht verstehe.
    " if (SYSTEM_STATUS and &H03)=3 then goto move_back "

    1. Frage: Wofür ist der SYSTEM_STATUS gut?
    2. Frage: Wofür ist die Adresse &H03 gut?
    3. Frage: Warum muss SYSTEM_STATUS AND &H03 z.B. 3 sein, damit er zuück fährt?

    Danke im voraus

    Garret
    Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    15.01.2005
    Beiträge
    80
    Hallo Garret,

    SYSTEM_STATUS ist eine Variable, die durch die Systemroutine COMNAV_STATUS gefüllt wird. Die Variable ist bitweise verschlüsselt. Dabei ist Bit0 = 1, wenn der rechte Collisionssensor anspricht, Bit1 = 1 wenn der linke Collisionssensor anspricht. &H03 ist keine Adresse, sondern der Wert, wenn BEIDE Sensoren ansprechen.

    if (SYSTEM_STATUS and &H03) = 3 ist ein Ausdruck aus der Boolschen Algebra. Beide Größen werden miteinander verglichen.
    Rechter Sensor spricht an: 2 hoch 0 = 1
    Linker Sensor spricht an: 2 hoch 1 = 2
    2 + 1 = 3 -> Bedingung erfüllt -> Befehl 'goto move_back' ausführen

    Hoffentlich habe ich es einigermaßen verständlich ausgedrückt.

    MfG
    GaronG

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    28.11.2004
    Alter
    31
    Beiträge
    49
    @ GaronG
    Was ist denn der COMNAV_STATUS? Wo finde ich den? UNd kann ich den auch selbst verändern?
    Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    15.01.2005
    Beiträge
    80
    COMNAV_STATUS findest du bei den erweiterten Systemroutinen. Sind in allen Programmbeispielen zu finden. Die Einsprungadresse ist &H125. Die Routine COMNAV_STATUS ist genau dazu da, die Zustände einiger Sensoren abzufragen und in SYSTEM_STATUS zu hinterlegen.

    (Siehe auch PROJECT5_INTERN.BAS bei den Beispielen)

    MfG
    GaronG

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    28.11.2004
    Alter
    31
    Beiträge
    49
    Eine andere Frage! Kann man die Entfernung verändern? Ich möchte nämlich mit einer Fernbedienung die Entfernung selbst einstellen.
    Im Beispielprogramm hat man ja eine Entfernung von 30 cm und ich möchte dann mit der Fernbedienung z.B. 15 cm einstellen.
    Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    15.01.2005
    Beiträge
    80
    Vorgesehen ist nur der Zugriff über die 3 Systemroutinen ACS_LO, ACS_HI und ACS_MAX die wahrscheinlich einen bestimmten Wert irgendwo auf eine Speicherzelle schreiben, die die Empfindlichkeit beeinflusst. Wenn man das komplette Systemprogramm disassembliert hätte, könnte man sowohl Werte als auch Adresse rauskriegen und eigene Werte reinschreiben. Die Frage ist, ob dann die Hardware mit den Werten arbeiten kann, da sie ja über die angegebenen Grenzen hinausgehen. Wär mal eine Aufgabe für absolute Freaks!

    MfG
    GaronG

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    28.11.2004
    Alter
    31
    Beiträge
    49
    Also ist das ziemlich schwer zu realisieren? Dann denk ich mal, dass ich das nicht fertig bekomme, ich bin noch ein Anfänger!
    Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    28.11.2004
    Alter
    31
    Beiträge
    49
    @ GaronG
    Am Anfang des Programms sind ja die ganzen Variabeln definiert!
    define ACS_LO &H01E1
    define ACS_HI &H01E9
    define ACS_MAX &H01F1
    Kann man denn nicht einfach einen Wert in z.B. &H01E1 legen, und dann hält er den Abstand?

    Garret
    Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    15.01.2005
    Beiträge
    80
    Nein, denn das sind NICHT die Adressen der Variablen, sondern nur die Einsprungadressen der Routinen, die die Variable verändern. Wo die Variable selbst steht, ist dadurch nicht ersichtlich.

    MfG
    GaronG

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    28.11.2004
    Alter
    31
    Beiträge
    49
    Ja wo könnten die Variabeln denn stehen? Man muss die doch irgendwo selbst ändern können!

    Garret
    Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •