mikrocontroller.net

Forum: Compiler & IDEs UART


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will auf einem AT MEGA 644 ein Zeichen/ String empfangen.
Kann ich das so realisieren?:

main:
...
if(String[0] == 'D')
{
  PORTC|= (1<<PC4);
...


ISR(USART0_RX_vect)
{
  String_empf[n] = UDR0;  // empfangenes im String speichern
  n++;          // Zähler erhöhe
}

Oder wie prüfe ich ab, ob das erste Zeichen zB ein D ist?

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann ich das so realisieren?:

ja

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem, ich komme nicht in die ISR(USART0_RX_vect)woran könnte das
liegen?
Initialisiert hab ich das ganze:
#define UART_BAUD_RATE 9600    // Baudrate = 9600 Baud

UBRR0 = (F_CPU / (UART_BAUD_RATE * 16L)) - 1;  //Baudrate
UCSR0C = (3 << UCSZ00);    // 8bit, no parity, ein Stoppbit
UCSR0B = (1 << RXEN0)|(1 << RXCIE0);  // Empfänger freischalten
UCSR0B = (1 << TXEN0)|(1 << TXCIE0);  // Sender freischalten

Autor: Joe Die (kosmonaut_pirx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
im zweiten setzen des control-status-register überschreibst du wieder
das erste setzen. denke ich jdf.
bye kosmo

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UCSR0B = (1 << RXEN0)|(1 << RXCIE0);  // Empfänger freischalten
UCSR0B = (1 << TXEN0)|(1 << TXCIE0);  // Sender freischalten

Kosmo hat Recht.
Also entweder so:
UCSR0B = (1 << RXEN0)|(1 << RXCIE0) | (1 << TXEN0)|(1 << TXCIE0);  //
Empfänger und Sender freischalten

Oder so:
UCSR0B = (1 << RXEN0)|(1 << RXCIE0);  // Empfänger freischalten
UCSR0B |= (1 << TXEN0)|(1 << TXCIE0);  // Sender freischalten

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, ihr habt beide Recht jetzt funktioniert es.
Danke euch.
Matthias

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.