Befehle/Daten unterscheiden

Gast #105322
Lesenswert?
• ▲
▼
Ich prgrammiere gerade mit einem AT90S8515 an einer Grafikkarte für uC
mit TV Ausgang.
Das ganze wird über den UART gesteuert. Dieser ist auf 115200Baud, 9bit
eingestellt.
Ist das 9. Bit Low, handelt es sich um Daten, ist es High ist es ein
Befehl. Auf manche Befehle folgen bis zu 768Byte an Daten als
Parameter.
Mein Problem ist jetzt, wie ich Daten (die direkt in den Grafikspeicher
wandern) von auf einen Befehl folgende Parameter unterscheiden kann. Das
ganze darf nicht zu aufwendig sein, denn die Hauptaufgabe ist die
Grafikausgabe.
Im Moment wird bei jedem Befehl eine Variable mit einer Zahl
beschrieben. Beim Datenwert wird die Variable überpüft, ist diese Null
werden die Daten in den Speicher geschrieben, ansonsten wird je nach
Zahl die entsprechende Funktion ausgwählt. Das ganze ist aber verdammt
aufwendig und somit langsam, und es funktioniert irgendwie nicht...
Hat jemand eine bessere Idee ?

Ach ja, ich programmiere in Assembler, denn C ist zu langsam.
Gast #105323
Lesenswert?
• ▲
▼
hmm, ja warum schickst du nicht vor jedem datenblock einen befehls block
wo drinnen steht wieviele datenblöcke jetzt folgen werden?

dann brauchst nur noch die empfangenen datenblöcke zu zählen und weißt
wann du wieder einen neuen befehlsblock zu erwarten hast.


hoffe der ansatz hilft dir.

Joe
Gast #105324
Lesenswert?
• ▲
▼
Auch eine gute Idee, aber da bleibt immer noch die Frage:
Befehlsbit wird erkannt Befehl "Daten" wird erkannt, zusammen mit dem
darauffolgenden Wert "256 Bytes". Hier muss auch eine Variable gesetzt
werden, um zu entscheiden was beim nächsten Datenwert passiert. Dann
muss ich wieder eine ewig lange Vergleichsreihe starten um zu
entscheiden, was die Daten nun zu bedeuten haben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.