Forum: Compiler & IDEs UART + Mega128 programmieren


von Dirk Kramer (Gast)


Lesenswert?

Hi,

kennt einer von euch eine Möglichkeit die beiden UARTS von Atmel's 
Mega128 mit gcc zu anzusprechen. Ich hab schon ein bisserl damit 
getestet, aber beim Ansprechen von UDRE0 und UDRE1 ist Schluss. Beide 
Bits sind anscheinend in der iom128.h nicht deklariert.

Meine Frage ist nun: Wie kann ich dieses Problem umgehen?

Reicht es, wenn man lediglich zwei Definitionen á la :

#define    UDRE0         5
#define    UDRE1         5

in den Header hinzufügt, oder was muss man dabei noch alles beachten?

Ich habe übrigens AVR-Studio 3.55 und das avrgcc-Build vom 25.06.2002 
(avr-freaks).

Danke,

Dirk

von Dirk Kramer (Gast)


Lesenswert?

Danke an alle, die sich möglicherweise den Kopf zerbrochen haben, aber 
ich habe inzwischen selbst den Ausweg gefunden.

War ja gar nicht so schwer wie ich dachte.

:-)

Dirk

von Christian (Gast)


Lesenswert?

Na dann verrats uns halt auch.....

Danke

Christian

von Dirk Kramer (Gast)


Lesenswert?

Ich wollt halt z.B. in den Registern UCSR0A und UCSR1A verschiedene Bits 
setzen, und hatte dabei nicht an folgendes gedacht:

Setzen:
USCR0A=(USCR0A|(1<<UDRE));

Löschen:
USCR0A=(USCR0A&(!(1<<UDRE)));

Damit kann man natürlich die einzelnen Bits verändern, ohne Sie explizit 
ansprechen zu müssen.

Mir schwebte halt damals irgendsowas wie UDRE0=0 bzw UDRE0=1 vor.

UDRE ist übrigens in den meisten Versionen der iom128.h definiert (als 
5tes Bit). Und da die Bitbelegungen in den Registern für die jeweiligen 
USARTS gleich sind, brauch man nur eine Konstante (das gilt so natürlich 
auch für die anderen Bits der USARTS).

So das war eigentlich schon die ganze "Lösung".

Falls es jemandem was hilft ... fröhliches "Mega Atmel'n"!

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.