MSP430: Kriege UART nicht zu laufen

OP #7348529

Hallo zusammen,

ich arbeite mich zur Zeit in die MSP430 ein. Ich habe ein MSP-EXP430FR5994 hier liegen und versuche, per UART etwas zu senden, allerdings klappt das nicht. Der TX-Pin macht keinen Wank, und der LED nach zu Urteilen bleibt das Programm auf Zeile 54 hängen. Kann mir mal jemand auf die Sprünge helfen? main.cpp für gcc ist im Anhang.

Danke und Gruss, Edi

Angehängte Dateien:
Gast #7348809

Hallo Edi, in Zeile 54 prüfst Du zwei Flags gegeneinander, diese Bedingung ist immer FALSE. Du muß die Flags gegen die entsprechenden Register prüfen. Gruß wv

OP #7348825

wv schrieb:

Hallo Edi, in Zeile 54 prüfst Du zwei Flags gegeneinander, diese Bedingung ist immer FALSE. Du muß die Flags gegen die entsprechenden Register prüfen. Gruß wv

Hm, aus der msp430fr5994.h:

1
sfr_w(UCA0IFG);                               /* eUSCI_Ax Interrupt Flag Register */

Ich denke schon, dass das ein Register ist.

Gast #7348831

wv schrieb:

in Zeile 54 prüfst Du zwei Flags gegeneinander

Nö, das ist korrekt. UCA0IFG ist ein Register, und UCTXCPTIFG ist ein Bit in diesem Register. Der Code wartet, bis das Bit gesetzt ist.

Wieso eigentlich "gegeneinander"?

Eduard I. schrieb:

Sagt man dass nur in der Schweiz so?

Auch in der Schweiz: "das" mit nur einem 's'. Wank in diesem Gebrauch ist im (nichtschweizerischen) Hochdeutschen /sehr/ ungebräuchlich.

#7348882

Hallo,

vorne weg: ich habe bis jetzt eigentlich nur etwas mit der MSP430F2xx Familie gemacht.

Probier mal auf das Flag UCTXIFG zu prüfen. Denn UCTXCPTIFG ist nach dem Reset mit 0 initialisiert. Da rennst du schön in eine Endlosschleife. UCTXIFG hingegen mit 1.

Was mir aber irgendwie etwas unlogisch erscheint, denn nach Reset ist ja der UCAxTXBUF ja leer und eigentlich müssten beide Flags ja dementsprechend gesetzt sein.

OP #7348930

wv schrieb:

hallo Edi laut Tab. 6-23 im Datenblatt soll für UART nur P2SEL1 gesetzt werden. --wv

Perfekt, DANKE! In meinem Datenblatt gibt es diese Tabelle nicht... Wie heist diese? Ist aber eigentlich logisch, das ist die 3. Funktion bei der Pinbeschreibung, also die 2. Alternativfunktion. Ich musste Zeile 57 noch zu while (!(UCA0IFG & UCTXIFG)); anpassen, wie Markus schon schrieb. Nun habe ich wohl noch ein Problem mit den Bitrate-Registern, da 0xE0 anstatt 'x' ankommt, aber es kommt was an! Herzlichen Dank!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.