mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Befehle/Daten unterscheiden


Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.