www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik msp430 UART Empfang


Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Folgenden code habe ich geschrieben:
received[60];
volatile signed char u = -1;

int main()
{
  for(;;)
  {
    uputs("received: ");
    uputs(received);
    uputs("\r\n");
  }
  return 0;  
}

#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  received[u++] = UCA0RXBUF;
  if (UCA0RXBUF == '\n' || UCA0RXBUF == '\r')
  {
    u = -1;
  }
}

keinen Plan, warum nichts empfangen wird...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du schreibst ins Nirvana.

Was soll es, u mit -1 zu initialisieren?!

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:
> Was soll es, u mit -1 zu initialisieren?!

da ich received[u++] beschreibe,
wird das erste Zeichen (1.ISR-Aufruf) in received[0] geschrieben

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Folgenden code habe ich geschrieben:
Aha?!
Wenn das alles ist, dann wundert mich nichts!
Watchdog noch am Laufen, UART gar nicht initialisiert...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> da ich received[u++] beschreibe,
> wird das erste Zeichen (1.ISR-Aufruf) in received[0] geschrieben

Nein, das wird es nicht. Der Postinkrement-Operator inkrementiert, 
nachdem die betreffende Operation durchgeführt wurde.

Du müsstest also den Präinkrement-Operator ++u verwenden ... oder gleich 
auf den ungewöhnlichen Ansatz verzichten.
Initialisiere u mit 0.

Autor: Timo P. (latissimo)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
>>Folgenden code habe ich geschrieben:
> Aha?!
> Wenn das alles ist, dann wundert mich nichts!


siehe Anhang!

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
initialisierung mit 0 hat nicht geholfen
empfangen wird nix :( zumindest nicht in meinen buffer
werde mal eroieren, ob die isr überhaupt kommt...

enabled ist sie:

IE2 |= UCA0RXIE;

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Häng den Source Code als c-Datei an, dann kann man sich den Code gleich 
mit dem Syntax Highlighter anschauen.

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.