Forum: Mikrocontroller und Digitale Elektronik [c] AtMega32 RS232 Problem


von RS232 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich probiere gerade die UART Schnittstelle an einem AtMega32 
anzusprechen.
Nun bin ich dabei mit Hilfe von µC.net und roboternetz.de die Libarie zu 
schreiben doch leider bekomm ich beim erzeugen des Codes die beiden 
Fehler, die ich in den Kommentaren dahinter geschrieben habe.
Warum? Kann mir jemand helfen?

von Stefan E. (sternst)


Lesenswert?

Dein Problem steckt in dieser Zeile:
1
#define F_CPU = 16000000

von RS232 (Gast)


Lesenswert?

1
#define F_CPU = 16000000UL
 funktioniert auch nicht. Der Error bleibt der gleiche.

von NurEinGast (Gast)


Lesenswert?

Wo hast Du denn in der rs232.c die avr/io.h includiert ?

von NurEinGast (Gast)


Lesenswert?

... in der rs232_test.c  :
   Man includiert keine .C Dateien !

von NurEinGast (Gast)


Lesenswert?

Wie sieht denn Dein Makefile oder Dein Compileraufruf auf ?
Grund der Frage - wo sagst Du denn dem Compiler, dass Du einen Mega32 
benutzen willst.

von RS232 (Gast)


Lesenswert?

Makefile ist normal vom GCC und ich hab mit AVR Studio ein Projekt 
erstellt Simulator und AtMega32 ausgewählt. Unten in der Leiste von AVR 
Studio steht auch AtMega32.

Wieso soll man keine *.c Dateien includen?

von Thomas E. (thomase)


Lesenswert?

RS232 schrieb:
> Wieso soll man keine *.c Dateien includen?
Weil es bei Programmiersprachen Regeln gibt. Das ist eine davon.

mfg.

von guest (Gast)


Lesenswert?


von karadur (Gast)


Lesenswert?

Hallo

mit 16MHz kriegst du die Baudrate nicht genau genug erzeugt. Deshalb 
gibt es z.B. Oszillatoren mit 14,7456 MHZ.
Das Makro sagt doch auch Toleranz zu groß

von Stefan E. (sternst)


Lesenswert?

RS232 schrieb:
> #define F_CPU = 16000000UL
> funktioniert auch nicht. Der Error bleibt der gleiche.

Vergleiche doch einfach mal diese Zeile mit anderen, die mit "#define" 
anfangen. Fällt dir da kein kleiner aber signifikanter Unterschied auf?

von RS232 (Gast)


Lesenswert?

Stefan Ernst schrieb:
> RS232 schrieb:
>> #define F_CPU = 16000000UL
>> funktioniert auch nicht. Der Error bleibt der gleiche.
>
> Vergleiche doch einfach mal diese Zeile mit anderen, die mit "#define"
> anfangen. Fällt dir da kein kleiner aber signifikanter Unterschied auf?

ach ich Dummkopf. Immer solche Kleinigkeiten die man vor Blindheit nicht 
sieht. Danke

von Stefan (Gast)


Lesenswert?

Hallo,

mach aus

>>#define BAUD_ERROR ((BAUD_REAL*1000)/(BAUD-1000))

halt einfach

>>#define BAUD_ERROR ((BAUD_REAL*1000)/(BAUD)-1000)

dann ists gut !!!

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.