mikrocontroller.net

Forum: Compiler & IDEs Probleme mit USART im ATmega48


Autor: Loipe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen ATmega48 gekauft. Ich habe einen IC angeschlossen, der
dann mit 19200bps Daten an den Atmel schickt. Diese leite ich dann zum
PC weiter. Nun kommen aber immer nur Hex Zahlen mit den Werten 80 oder
00 an. Wenn ich z.B. einen ATtiny2313 einbaue, funktioniert es
einwandfrei.

Kann mir mal jemand ein kleines Testprogramm für die serielle
Schnittstelle schicken das mit dem ATmega48 funktioniert.

Danke

MfG Alex

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert denn das Senden vom µC zum PC alleine?
Möglicherweise ist der USART falsch eingestellt...Poste doch mal den
Code.

Gruß
Andreas

Autor: Loipe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das ist mein Code
der PC empfängt Hex: 80 00 80
F_CPU steht im Makefile und hat den Wert 8000000


#include <stdlib.h>
#include <avr/io.h>

#define UART_BAUD_RATE      19200

void uart_init(unsigned int baudrate)
{
    UBRR0H = ((unsigned char)(baudrate>>8))&0x80;
    UBRR0L = (unsigned char) baudrate;
    UCSR0B = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
    UCSR0C = (3<<UCSZ00);
}

void uart_putc(unsigned char data)
{
    while ( !(UCSR0A & (1<<UDRE0)))
    {
        asm("nop");
    }
    UDR0=data;
}

int main(void)
{
    uart_init(F_CPU/UART_BAUD_RATE/16-1);
    uart_putc('A');
}

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> F_CPU steht im Makefile und hat den Wert 8000000

Und mit welcher Taktfrequenz läuft dein ATmega48?

(Hinweis: guck dir die Fuses an...)

Autor: Loipe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe den Fehler gefunden

Dieses Fuse war gesetzt.
Divide clock by 8 internally

Danke für die Hilfe

MfG Alex

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.