hi, ich habe vor das beim counter beim erreichen eines wertes der interrupt kommt und ein unterprogramm auslößt. es klappt auch ganz gut, nur das laut simulator ( avr studio ) das programm komplett neu startet und nicht die interruptroutine. das selbe problem ist beim "anspringen des externen interrupts sobald ich mit ISR den zweiten interruptvektor setze mault der compiler das ISR schon defeniert ist. zum code ( ausschnittweise ) main(void) { . . // counter 16bit TCCR1B |= (1<<CS12)|(1<<CS10); // Setzt timer teiler auf 1024 TIMSK |= (1<<OCIE1A); // interrupt bei compare OCR1A = 2; // vergleichsregister einen wert zuordnen // counter 8bit TCCR0B |= (1<<CS00)|(1<<CS02); // teiler auf 1024 // interruptroutine aktivieren GIMSK |= (1<<INT1); // externer interrupt MCUCR |= (1<<ISC11 )|(1<<ISC10 ); //flankendefinition interrupt int1 sei(); while (1) { } . . }// main zu ende //SIGNAL(TIMER1_COMPA) ISR(TIMER1_COMPA_vect) { }
> das selbe problem ist beim "anspringen des externen interrupts > > sobald ich mit ISR den zweiten interruptvektor setze mault der > compiler das ISR schon defeniert ist. Deutet alles darauf hin, dass irgend ein erforderliches Header-File nicht inkludiert ist.
habe gesehen das der compiler was rauswirft wenn man einzeln kompiliert: ../lighterv1.c:453: warning: return type defaults to `int' ../lighterv1.c: In function `ISR': ../lighterv1.c:474: warning: control reaches end of non-void function #include "lighterv1.h" dadrin sidn die: #include <inttypes.h> #include <avr/io.h> #include <avr/delay.h> #include <avr/eeprom.h> #include <stdint.h> #include <avr/pgmspace.h> #include <avr/interrupt.h>
ist das die version ? 20050214 von winavr 3.4.3 gcc
Tja, die Version kannte noch kein ISR. Entweder ein Update oder SIGNAL benutzen...
lade die neue version runter. ich habe auch mit signal progiert ( in der zeile über ISR, auskommentiert ) da war aber der selbe fehler. versuche erstmal das update und dann melde ich mich wieder.. und hoffentlich mit etwas positivem :o) danke schonmal
Nicht ganz, die Makro Konstanten heissen auch anders
> ich habe auch mit signal progiert ( in der zeile über ISR, > auskommentiert ) da war aber der selbe fehler. Da hättest du zusätzlich noch #include <signal.h> gebraucht. Der Umstieg auf eine neuere Version ist sicher eine weise Entscheidung. Hast du eine aktuelle Version vom AVR-Studio?
so habe avrstudio auch noch geupdatet, nachdem es nicht mehr compilierte. jetzt läuft alles und auch der interrupt kommt nun :o) danke nochmals
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.