Forum: Mikrocontroller und Digitale Elektronik Befehle/Daten unterscheiden


von Benedikt (Gast)


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.

von Joe (Gast)


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

von Benedikt (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.