www.mikrocontroller.net

Forum: Compiler & IDEs compiler error bei dcf77 code von ulrichradig


Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

beim versuch den dcf77 code von ulrichradig zu compilieren bekomm ich
diverse compiler error -trotzdem ich die neuste winavr version benutze.
was ist denn da los :)

Fehler: Redefinition von SIGNAL
Fehler: EICRA nicht deklariert (erste Benutzung in dieser Funktion)
Fehler: zu viele Argumente für Funktion fdevopen

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Redefinition von SIGNAL

Sieht so aus, als wäre <avr/interrupt.h> nicht reingezogen
worden.

> EICRA nicht deklariert (erste Benutzung in dieser Funktion)

Dein Prozessor hat dieses Register nicht, der Code denkt aber,
es wäre immer da.

> zu viele Argumente für Funktion fdevopen

Mit Übergang auf avr-libc 1.4 hat sich das API von fdevopen()
geändert.  Das alte API ist verfügbar, wenn man den Makro
__STDIO_FDEVOPEN_COMPAT_12 definiert, entweder via #define
(vor dem #include <stdio.h>) oder über eine -D-Option des
Compilers.  Steht alles in der Doku...

Eigentlich sollte aber der Code wohl besser auf die neuen APIs
angepasst werden (u. a. Ersatz von SIGNAL() durch ISR(),
Benutzung von FDEV_SETUP_STREAM() um kein malloc() mehr für
stdio zu benötigen).

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha, danke !

wenn mein prozessor dieses register also nicht hat - wie muss ich den
code dann anpassen? hab leider noch nicht genügend ahnung um das alles
selbst hinzubekommen :)

es wird into_control auf 0x02 oder 0x03 gesetzt.

#define INT0_CONTROL    EICRA
#define INT0_FALLING_EDGE  0x02
#define INT0_RISING_EDGE  0x03

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Kristallkugel ist leider zur Reparatur, daher müsstest
du uns schon noch verraten, welchen Prozessor du benutzt.

Aber eigentlich kannst du auch gleich selbst dann im Datenblatt
nachgucken, wie das zugehörige Steuerregister heißt, mit dem
der Externinterrupt 0 aktiviert wird.

Autor: hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh irgendwie bin ich überfordert :/

hab jetzt viel rumprobiert und andere beispiele gesucht, auch das
datenblatt durchgemacht aber ich fürchte ohne hilfe komme ich einfach
nicht weiter.

vielleicht hat ja jemand heute abend nochma kurz zeit dafür ... trotz
dem super wetter :P

danke ... und schönes wochenende!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast uns leider immer noch nicht geschrieben, welchen
Prozessor du benutzt.  Alles, was wir wissen ist, dass er
kein EICRA hat, aber da bleiben immer noch ziemlich viele
AVRs übrig...

Autor: hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
s**** .. total vergessen :/

atmega16

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt Seite 67: GICR.

War das wirklich so schwer zu finden?  Ich habe lediglich auf
der linken Seite in den Bookmarks den Punkt "External Interrupts"
nachgeschlagen.

Bitte mach dir das nächste Mal ein wenig mehr Mühe, deine
,,Hausaufgaben'' zu erledigen, sonst wird dir irgendwann keiner
mehr helfen wollen.

Autor: Ronald Hensen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend

habe vermutlich ein ähniches Problem.

Mein Interrupt wird nicht ausgewertet. Im LCD habe ich die ganze Zeit NS 
stehen.
Habe schon beides Ausprobiert: #define INT0_CONTROL MCUCR als auch 
#define INT0_CONTROL GICR.
Ohne erfolg.
kannst du mir mal den Code vom Mega 16 rüber schicken.


MfG
Ronald

Autor: Stephan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe den Code auf AVRStudio und WinAVR 20060421 angepaßt.

Grüße

Stephan

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.