www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 UART kommunikation klappt nicht


Autor: Josef Voglhuber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo auch,
ich suche seit etwa 2 Tagen diesen Fehler:
Wenn ich mit einen MSP430F169 über die Serielle Schnittstelle ein
einzelnes Zeichen senden will, dann wird ständig das selbe Zeichen
gesendet.
Die Widerholfrequenz des Zeichens ist jedoch sonderbar lang. Bei 9600
Baud werden gerade mal so 10 bis 20 Zeichen pro Sekunde übertragen.
Bei anderen Baudraten ändert sich da nichts.
Ich habe im Anhang ein kleines C-Programm geschrieben, das diesen
Fehler sehr schön herausarbeitet.
Zum Programmieren benutze ich die IAR Embedded Workbench IDE.
Die verwendete Hardware ist von SoftBaugh das Dlr169 Demo Kit, Die
kommunikation sehe ich mir mit Hyperterminal von Windows an.
Hat jemand eine Idee, an was das legen könnte?
Besten Dank für eure Hilfe.

Autor: Thomas V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Josef,
den MSP430 verwende ich zwar nicht, aber mir ist aufgefallen,
daß in Deinem Programm auf den ersten Blick keine Wiederhol-
schleife zu erkennen ist. Jetzt mal ein Schuß ins Blaue:
Bedeutet "SWRST" vielleicht Softwarereset, so daß nach jedem
Senden resettet wird? Andere Sache: Bei den mir bekannten
µCs fragt man erst, ob das Transmit-Register leer ist, bevor
man hineinschreibt.
Good Luck
Thomas

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich blicke bei deinem Programm auch nicht so ganz durch ... Was hast du
für komische Registernamen? Bei mir heisst der erste TX-Buffer TX1BUF,
und nicht U1TXBUF. Und ich benutze auch den IAR-Workbench. Was auf
jeden Fall fehlt -- da hat Thomas recht -- ist die Schleife. Du
arbeitest ja ohne Interrupts, daher kann auch zwangsläufig nicht mehr
als ein Zeichen übertragen werden. Ferner fehlt das Warten, ob der
TX-Buffer schon leer ist. Auch das erwähnte Thomas ja schon. Ich habe
auf www.mathar.com ein paar (kommentierte) Beispiele erstellt, die eine
Kommunikation über den UART realisieren. Lies sie dir einfach mal
durch, dann sollte alles klar werden.

Grüße, Sebastian

Autor: Josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab den Fehler jetzt selbst gefunden.
Es liegt einfach daran, das ich vergessen habe, den Watchdog auf dem
MSP zu deaktivieren. Der MSP hat sich dann von selbst zurückgesetzt und
hat das Zeichen neu übertragen.

Übrigens ist ganz am Ende die Programmzeile:

    for(;;);

das ist eine Endlosschleife.

Besten Dank für Eure Beiträge

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar ist das 'ne Endlosschleife, aber die bringt dir genau garnix, weil
du ja die Interrupt-Bits fürs USART nicht gesetzt hast. Und der
IR-Handler fehlt ja auch komplett, zumindest in dem von dir geposteten
Codestück.

Autor: Josef Voglhuber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War ja nur ein Demoprogramm mit dem ein einzelnes Byte versant werden
sollte

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.