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.
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
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 */
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.
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!
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.