Echo über USART (RS232)

OP #1491466
Hallo Gemeinde,

irgend wie will das Echo über usart bei mir nicht richtig klappen 
anstatt der gedrückten Buchstaben kommen über RS232 nur unsinnige 
Zeichen zurück
der CODE:
1
#include <avr/io.h>
2
#define USART_BAUDRATE 9600
3
int8_t geht=0;
4
 void initUsart(void) {
5
  UCSRB |= (1 << RXEN)  | (1 << TXEN); //Sender und Empfänger ein
6
  UCSRC |= (1<<URSEL)|(1 << UCSZ1)|(1 << UCSZ0);  //async
7
  UBRRL = (F_CPU / (USART_BAUDRATE * 16L) - 1); //baudrate und takt
8
 
9
}
10
int usartGetchar(void) {
11
  if (UCSRA & (1 << RXC))  //wenn zeichen da
12
    return  UDR;
13
       //gib zeichen zurück
14
    else  return -1;  //sonst gib -1 zurück
15
}
16
void usartPutchar(char c) {
17
    while ((UCSRA & (1 << UDRE))==0); //Warte solange solange besetzt  
18
  UDR =  (char)c;              
19
}
20
int main(void) {
21
  initUsart();
22
  while (1) { 
23
      geht=usartGetchar();
24
        //Zeichen lesen
25
    if (geht != -1)  //Wenn ein Zeichen da
26
         usartPutchar(geht); //dann Zeichen ausgeben
27
  }
28
  return 0;
29
}
kann mir jemand ein Tipp geben wo mein Fehler liegt?

Danke und bis dann
Hallo Michal,

das Problem liegt wahrscheinlich nicht am Code sondern
daran, das die Baudrate zwischen Sender und µC nicht
übereinstimmt.

Was für einen Quarz hat du angeschloßen oder benutzt du
den internen RC?

Vergleiche mal die Frequenz des Quarzes mit der eingestellten
für "F_CPU".


Mfg

Christian

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.