Probleme mit Interrupt

Gast #1371224
Lesenswert?

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 #1371248
Lesenswert?

> 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 #1371359
Lesenswert?

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.
#1371408
Lesenswert?

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 #1371421
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren