www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Symbol Definitions woher?


Autor: Roger Sterly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts überhaupt sowas wie einen PortA???????

;-)

fg

Autor: Aufreger deluxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roger Sterly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Warum denn nicht

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

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Werner A. (homebrew)
Datum:

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

Werner

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha - ok, danke!

Gruß und noch ein schönes Wochenende!
Christian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.