Probleme mit Interrupt

Gast #1371224
Hallo ich bin noch nicht so ganz fit in Interrupts und habe auch beim 
kompilieren Fehler bekommen. Vielleicht kann  mir jemand helfen. Danke.
Es handelt sich um einen ATMega16.

folgende Fehler beim AVR-GCC:

../Interrupt1.c:25: error: 'GICR' undeclared (first use in this 
function)
../Interrupt1.c:25: error: (Each undeclared identifier is reported only 
once
../Interrupt1.c:25: error: for each function it appears in.)
../Interrupt1.c:29: error: static declaration of '__vector_2' follows 
non-static declaration
../Interrupt1.c:29: error: previous declaration of '__vector_2' was here
make: *** [Interrupt1.o] Error 1
Build failed with 5 errors and 0 warnings...

Was ich auch nicht so ganz verstehe warum er mir GICR anmeckert? Der ist 
doch im avr/iom16.h und somit der aufrufenden avr/io.h deklariert?
Angehängte Dateien:
Gast
> volatile int a=1;

volatile wird in diesen code nicht gebraucht.

> int i = 128; i > 1; i -= i/2)
warum int? ist dir der controller etwas zu schnell?

> _delay_ms(1000);
eine ISR sollte schnell sein, dieses passt nicht mit dem delay zusammen.
Gast
hi also ich habe den Fehler selber schon gefunden und zwar war der Tip 
mit makefile schon ganz gut denn da ist ATMega128 definiert und diese 
hat natürlich andere Registerbezeichnung. Wollte nur jetzt fragen wie 
übernehme ich den Wert neuer MCU in makefile? Ich kann sie auwählen aber 
nicht speichern zumindest klappt bei mir nicht.
Gast
STK500 und AVR Studio 4.14. Ich habe jetzt das mit makefile gemacht aber 
er reagiert nicht muss ich wo anders einstellen damit die richtige 
iom16.h und nicht io128.h genommen wird?
giggi schrieb:
> STK500 und AVR Studio 4.14. Ich habe jetzt das mit makefile gemacht aber
> er reagiert nicht muss ich wo anders einstellen damit die richtige
> iom16.h und nicht io128.h genommen wird?

Vergiss das makefile.
Im AVR-Studio stellst du das ganz einfach unter den Project Options ein

Menüpunkt 'Project'
Ganz unten 'COnfiguration Options'

Dort solltest du auch die tatsächliche Taktfrequenz eintragen.


Nicht vergessen: Für den Simulator gibt es eine eigene Einstellung für 
das verwendete Gerät.

-> Wenn man beim Erzeugen des Projekts aufpasst und gleich das richtige 
Device einträgt, spart man sich viel Ärger.
Gast
hi vielen Dank für diesem Tip, habe gerade sogar das selber gefunden 
beim suchen. Das Problem war dass ich schon mal das ganze so angewählt 
habe jedoch statt atmega16 hat er atmega128 übernommer und das habe ich 
übersehen. Jedoch hat jetzt zum Glück alles geklappt. Naja jetzt bin ich 
zumindest schlauer. Trotzdem vielen Dank!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.