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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.