-
-
Erfahrener Benutzer
Robotik Einstein
Hallo Florian,
Ich habe mir Deinen Code angeschaut, und hätte da ein paar Verbeserungsvorschläge,
ich habe bis jetzt keine Routine dieser Art geschrieben, aber erst vor kurzem ein Code analysiert und man hat es folgendermaßen gelöst:
- Kein extra Register für jedes Zeichen sondern ein Puffer im Sram, wo die empfangenen Zeichen verschoben werden.
- In der Interrupt Routine wird nur geprüft, ob ein Wagenrücklauf gesendet wurde oder der Puffer nicht überläuft, was auch das Ende des Befehls bedeuten würde, sollte das eintreffen, wird eine Befehlkomplett Flagge gesetzt, die in dem Hauptprogramm entsprechend überprüft wird,
außerdem wird dort das empfangene Zeichen zurück in UDR geschoben, um es an das Terminalfenster zurückzuschicken (echo)
Vorteil: Kurze Interruptroutine und keine rcalls daraus, was man sowieso nicht machen sollte.
Wenn dann die Befehl komplett Flagge im Hauptprogramm erkannt wird, kann man den Pufferinhalt mit den Befehlen, die in .db , oder wo auch immer liegen vergleichen, und entsprechend verzweigen.
Ich hoffe, ich hab mich verständlich ausgedrückt.
Bei Bedarf kann ich den Schnipsel raussuchen und hier reinsetzen.
Gruß Sebastian
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen