Forum: Mikrocontroller und Digitale Elektronik USART beim Atmega48


von S. W. (Gast)


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
}

von Michael K. (mmike)


Angehängte Dateien:

Lesenswert?

Hallo Steven,

anbei der Code. Hauptprogramm könnte so aussehen:

#include <avr/io.h>
#include <inttypes.h>
#include "m_usart88.h"

int main ()
{
  uart_init ();

  for (;;)
  {
    uart_putc ('A');

    warte_ein_bisschen ();
  }
}

von Michael K. (mmike)


Lesenswert?

Hm. Datenbits und Stopbit richtig gesetzt ? (Eingestellt in meinem 
Orginal - Code ist 8N1)
Wie sieht Deine Hardware Verschaltung aus ?

Michael

von Mike (Gast)


Lesenswert?

Verwendest Du den internen RC-Oszillator? Dann könnte das beschreiben 
des OSCCAL-Registers helfen.

von Michael K. (mmike)


Lesenswert?

Poste doch mal Deinen kompletten Code bzw. den Teil mit dem RS232, 
vielleicht seh' ich ja was ...
Ansonsten, welchen Wandler benutzt Du ? Max232 - Serie ?

Mike

von Rahul D. (rahul)


Lesenswert?

>Ich verwende für die Hardware einen USB<->RS232-Wandler, wobei es eine
>Direktverbindung zw. Atmega und Wandler-IC gibt.

Du scheinst ein USB-Puffer-Problem zu haben.

von Rahul D. (rahul)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.