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?
> #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.
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?
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.
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
> Warum denn nicht
Es gibt keinen technischen Grund dafür. Nur wenn du den
nächsten Compilerupdate machst, ist alles wieder futsch.
> 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
Ne, man sollte eher die "überarbeitete" Version an die Hersteller schicken. Dann haben beim nächsten Mal alle was davon Werner
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.