-
-
Erfahrener Benutzer
Roboter-Spezialist
Wie Du richtig bemerkt hast, wird beim Empfang eines Zeichens
ein Interrupt ausgelöst. Dieses Zeichen solltest Du in deiner ISR
abholen und in einen Buffer ablegen. Dies ist ein Array. Die Grösse
des Arrays ist natürlich abhängig davon wie lang den Befehl ist.
Bsp. Dein Befehl ist: (ohne Hochkomma)
Chr(STX) + "DR2000" + Chr(13) = Drehe Rechts 2000 Schritte
Dies sind 8 Zeichen. Deshalb muss dein Buffer mindestens 8
Zeichen aufnehmen können.
In diesem Beispiel setzt Du wenn Du das Zeichen <STX> empfängst ein
Flag dass Du einen neuen Befehl empfängst. Du Kopierst das Zeichen in deinen Buffer.
Wenn Du das Zeichen Chr(13) empfängst weisst Du dass Du den ganzen Befehl empfangen hast und kannst diesen nun auswerten.
Du setzt also in deiner ISR das Flag zurück. Dieses Wertest du nun aus.
Das ganze ist das, was ich unter dem Protokonll angedeutet habe.
Oftmals werden in den Befehl auch Informationen zur Fehlerkorrektur
eingebettet.
http://de.wikipedia.org/wiki/Netzwerkprotokoll
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen