Forum: Compiler & IDEs Atmega8 UART problem


von Fabian Knapp (Gast)


Lesenswert?

Hallo,
habe mal wieder ein dummes Anfängerproblem...
wollte mit dem atmega8 einfach mal ein buchstabe mithilfe des wikis
senden. habe zum testen einfach mal alles mögliche includet.

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/delay.h>
#include <inttypes.h>
#include <string.h>
#include <stdlib.h>
#define F_CPU 4000000          // 4MHZ Oszi angeschlossen
#define UART_BAUD_RATE 9600     // baud rate = 9600 (uebertragung)

main()
{

    UBRR=(F_CPU/(UART_BAUD_RATE*16L)-1);
    UCSRB=(1<<TXEN);

    UDR="x";
}

Aber der compiler spricht:

uart1.c:14: error: `UBRR' undeclared (first use in this function)
hat UBRR beim Atmega eine andere bezeichnung? Oder was mache ich
falsch?

Vielen Dank für eure Hilfe.

von mthomas (Gast)


Lesenswert?

Unpassende Registernamen genutzt. ATmega8 hat keinen "alten" UART
sondern einen "neuen" USART. Hatte gehofft, den Unterschied
UART/USART im Wiki deutlich beschrieben zu haben - wohl nicht.
Verbesserungsvorschlaege willkommen oder gleich selbst verbessern.
Ansonsten: Datenblatt gibt erschoepfend Auskunft und sogar Beispielcode
oder sich z.B. von der "Fleury-UART-lib" inspirieren lassen.

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.