UART

Gast #411688
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?
Gast #411690
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
Gast #411692
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

Antwort schreiben

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.

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.