www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wordsalat bei beim auslesen von U0RXBUF


Autor: Neki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich benutze den MSP430f149, der chip hängt hinter einem Empfängerchip
(IA4320) die Datenübertragung funktioniert soweit.
Es kommen auch die Daten an die gesendet werden. Das Problem liegt
darin das die Wortreihenfolge nicht stimmt. Ich sende AAAA8E2A.
Ankommen tut allerdings AAAA2AE8 und diverse andere Wort kombinationen,
das AAAA ist immer an der richtigen stelle nur die zweiten 16 Bit werden
wild Durchgetauscht.
Es scheint so, dass der MSP430 einen 16 Bit grossen Empfangspuffer hat,
der als Ring angeordnet ist und beim auslesen des 8 Bit grossen Rx -
Puffers wird, der Freigewordene Teil wieder voll geschrieben ....
zumindest bilde ich mir das ein ..... bin für jeden Tipp dankbar ...

Gruß Neki

Autor: Neki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja vielleicht wär'a auch ganz Sinvoll über meine nähere
Vorgehensweise zu Berichten :-).

Also ich benutze die IAR - IDE und Programmiere in C.

Ich lese den Puffer über die 8 Bit Variable U0RXBUF (Adresse 0x0076)
aus.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck dir doch mal meine USART-Tutorials auf www.mathar.com an, die
helfen dir vielleicht. Was soll U0RXBUF sein? Bei mir heisst der Buffer
RXBUF0 bzw. RXBUF1 (für USART0 bzw. USART1). Der Buffer packt jeweils
genau ein Zeichen (also ein Byte), und zwar bei Benutzung der
Interrupts so lange, bis du es ausliest. Machst du dein Empfangen
Interrupt-basiert?

Autor: Neki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im IAR heißt der Buffer U0RXBUF, ja ich polle auf den Interrupt,
jedesmal wenn der Interrupt auslöst lese ich das Zeichen in einen
Ringpuffer von wo aus ich die Daten weiterverarbeite. Zumindest ist das
der Plan. Danke für den Link werde mir die Seite gleich mal ansehen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob AA oder AA rauskommt, ist ja wohl egal.
Vermutlich liegt der Fehler irgendwo im Ringpuffer wo dann High und Low
Byte verwechselt werden.

Autor: Neki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Preamble ist nicht das problem es ist aber schon nen problem wenn
statt 8E2A 2A8E rauskommt. Den Ringpuffer hab ich zurzeit
auskommentiert ich schreibe die Ergebnisse direkt in ain Array, mache
danach nen Memory dump um zu sehen was empfangen wurde.

Autor: Neki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab das Problem gefunden, hin und wieder ist es einfacher als man
denkt.
Es war ein reines Anzeigeproblem des Memorydumps, ich hab mir den
Memorydump im 16-Bit Format angesehen. Im 8 - Format stimmt wieder
alles :-).

Das zeigt mal wieder alles reine Ansichtssache :-).

Danke für eure Unterstützung ..... und Entschuldigt meine Dusseligkeit
...

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.