USART beim Atmega48

Gast #511633
Lesenswert?

Hallo,

ich suche ein funktionierendes und verifiziertes Beispiel zur 
Ansteuerung der UART des Atmega48/88.  Mangels eines Oszis bzw. eines 
Logianalyzers weiß ich nicht, was der Atmega macht. Ein String wird als 
Wirrwar im Terminal angezeigt, ein einzelnes Zeichen wird erst gar nicht 
dargestellt.

Das Beispiel für gcc
1
#include <avr/io.h>
2

3
int main(void) {
4

5
    UCSR0B |= 1<<TXEN0;
6
    UCSR0C = 3<<UCSZ00;  // 8n1
7
    UBRR0H = 0;
8
    UBRR0L = 47;    //9600 Baud
9
  
10
    while (!(UCSR0A & (1<<UDRE0)))
11
    UDR0 = 'A';
12
    while(1);
13
}
#511944
Lesenswert?

>Ist da der Chip oder der Treiber da Problem?

Vermutlich kannst du die Puffergrösse irgendwo einstellen.
USB überträgt immer Datenrahmen einer bestimmten Grösse (welche, weiß 
ich gerade nicht...). Einer von beiden (Chip oder Treiber) sammelt 
scheinbar erst mal die Daten und überträgt dann den kompletten Block.

>Du scheinst ein USB-Puffer-Problem zu haben.
... ist einfach nur eine Vermutung aufgrund diverser Posts zu dem Thema.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren