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
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.
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?
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.
Ob AA oder AA rauskommt, ist ja wohl egal. Vermutlich liegt der Fehler irgendwo im Ringpuffer wo dann High und Low Byte verwechselt werden.
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.
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 ...
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.