Forum: Mikrocontroller und Digitale Elektronik Symbol Definitions woher?


von Roger Sterly (Gast)


Lesenswert?

Hallo,
will mir grad mal den gcc für die AVRs ansehen, habe bisher nur 
Codevision benutzt.

Dieser Fehler tritt nun auf:
main.c:10: error: `DDRA' undeclared (first use in this function)

ich habe
#include <avr/io.h>
#include <stdint.h>
#include <avr/iom8.h>

includiert. Im Makefile steht mein Mega8 drin. Was übersehe ich noch?

von Ulrich (Gast)


Lesenswert?

gibts überhaupt sowas wie einen PortA???????

;-)

fg

von Aufreger deluxe (Gast)


Lesenswert?

> #include <avr/iom8.h>

Das ist nicht notwendig.

> main.c:10: error: `DDRA' undeclared (first use in this function)

Der ATmega8 hat keinen Port A und somit existiert auch DDRA nicht.

von Roger Sterly (Gast)


Lesenswert?

okey danke.
Wo holt er sich diese Definitionen her, oder sind die direkt im Compiler 
verankert? Gibts irgendwo eine SFR Datei? Wie beispielsweise beim 
Tasking Compiler?

von Karl H. (kbuchegg)


Lesenswert?

Du inkludierst io.h
Das ist aber nichts anderers als ein Verteiler. Je nach
eingestelltem Prozessor includet io.h dann das richtige
ioxx.h. In deinem Fall ist das iom8.h (daher brauchst du
das auch nicht selbst inkludieren).
Und in dieser iom8.h stehen dann alle Definitionen drinnen,
die auf einem Mega8 einen Sinn machen.

Es ist übrigens nicht verboten, in die io.h oder ioxx.h
mal hineinzuschauen. Nur ändern sollte man da drinnen
nichts.

von _CH_ (Gast)


Lesenswert?

Hallo,

@ Karl heinz Buchegger
> Nur ändern sollte man da drinnen
> nichts
Warum denn nicht? Ich habe mir für den Tiny13 die EEPROM Register + 
Bitdefinitions nachgetragen und es funktioniert wunderbar.
Man sollte halt nichts machen wo, man sich nicht bewusst ist was man 
macht...

Gruß,
Christian

von Karl H. (kbuchegg)


Lesenswert?

> Warum denn nicht

Es gibt keinen technischen Grund dafür. Nur wenn du den
nächsten Compilerupdate machst, ist alles wieder futsch.

von _CH_ (Gast)


Lesenswert?

> Nur wenn du den
> nächsten Compilerupdate machst, ist alles wieder futsch

Wie macht man dann sowas "sauber"?
Bei mir waren z.B. die EEPROM-Bits nicht definiert - Ist es besser sich 
ne separate .h Datei zu machen wo die Ergänzungen drinstehen?

Gruß,
Christian

von Werner A. (homebrew)


Lesenswert?

Ne, man sollte eher die "überarbeitete" Version an die Hersteller 
schicken. Dann haben beim nächsten Mal alle was davon

Werner

von _CH_ (Gast)


Lesenswert?

aha - ok, danke!

Gruß und noch ein schönes Wochenende!
Christian

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.