atmega32 - uart -

Gast #1180430
Lesenswert?
• ▲
▼
Hallo Forum,

ich bin neu hier und habe eine Frage zum UART beim Atmega32. Ich weiß, 
leidiges Thema. Das Problem bei mir ist jedoch nicht, dass es nicht 
funktioniert, sondern, dass es mich verwirrt wie es funktioniert. Ich 
benutze unten stehenden Codeabschnitt zur Initialisiertung und zum Test 
des UART.

Laut Avr-Gcc-Tutorial müsste der Modus(?) auf 8N1 gesetzt sein. Wenn ich 
aber in meinem Terminalprogramm(GtkTerm) 8N1 einstelle, kommt nur Quark 
raus. Stelle ich das aber auf 7N1 funktioniert alles perfekt. Ich 
verstehe nicht warum das so ist?

Ach ja, Baudrate ist 9600 und Frequenz 16MHz.


1
  UBRRH=0;
2
  UBRRL=103;
3
  UCSRB |= (1<<TXEN);                            
4
  UCSRC |= (1<<URSEL)|(1 << UCSZ1)|(1 << UCSZ0); // Asynchron 8N1 
5
  
6

7
  while(1)
8
  {
9
    while (!(UCSRA & (1<<UDRE)))  
10
    {
11
    }
12
    UDR = 'a'; 
13
    while (!(UCSRA & (1<<UDRE)))  
14
    {
15
    }
16
    UDR = 'b'; 
17
    setGreen(1);
18
  }

Gruß Tobias
#1180501
Lesenswert?
• ▲
▼
Tobias wrote:
> Ok, ich hab die das "|" rausgenommen, keine Veränderung. Bin noch nicht
> so fit mit C.
Mit dem "|=" werden eventuell bereits gesetzte Bits beibehalten. Wenn am 
Register sonst noch nichts gemacht wurde, sollten zwar alle Bits 0 sein, 
aber sicher ist sicher. In so einem Fall ist das "|=" nicht ratsam 
(zumal es auch noch mehr Code erzeugt als ein einfaches "=").
#1180532
Lesenswert?
• ▲
▼
Wenn Du hast, nimm einen Ossi und messe mal die Bitzeit, sollte bei 9600 
Baud 104us sein.
Dann sende ein 'U' = 0x55 = 0b01010101.
Es sollte also 4 Null-Bits und 4 EINS-Bits + Startbit und Stopbit 
erscheinen.
Wenn er tatsächlich nur 7 Bits übertragt, dann fehlt ein Null-Bit.

Gruß 900ss

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.