Hallo zusammen, ich verzweifle gleich. Ich bin im Moment dabei von AVR-Studio auf Eclipse umzusteigen. Im Moment löst mir bei folgendem Programm der TIMER1_OVF Vector nicht aus, obwohl das Flag im TIFR gesetzt wird. Nun hab ich gelesen das bei früheren Versionen ( heute auch noch?) ein Problem mit dem Linker besteht. Ich verwende das AVR-Plugin Version: 2.3.4.20100807PRD Wenn ich mit der Maus auf ISR(TIMER1_OVF_vect) zeige zeigt er mir an das das durch __vector_8 ersetzt wird. Im Datenblatt des Mega16 ist der gewünschte Interrupt jedoch die Nummer 10? #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> ISR(TIMER1_OVF_vect) // Timer 1 Overflow Interrupt { TCNT1=32000 ; } int main (void) { LED_DDR = 0x0F; TASTER_DDR =0x00;//Tasterport als Input anwählen TASTER_PORT = 0xFF; // PULL-UP an TCNT1=32000; TCCR1B |=(1<<CS12); TIMSK |=(TOIE1); sei(); while(1); return 0; } Kann jemand dazu eine aussage machen? mfg Benedikt
Ich weiß jetzt nicht, was du für einen Modus eingestellt hast - etwas auführlichere Kommentierung stünde deinem Programmierstil ganz gut an -, aber ich hab das mit TIMER1_COMPA_vect und CTC mode mit Eclipse gemacht - allerdings mit ASM. Mit Eclipse hat das sicherlich nichts zu tun, das ist Sache des gcc, den du verwendest und mit einem Linkerfehler hat es sicherlich nichts zu tun.
Benedikt Lippert schrieb: > Wenn ich mit der Maus auf ISR(TIMER1_OVF_vect) zeige zeigt er mir an das > das durch __vector_8 ersetzt wird. Im Datenblatt des Mega16 ist der > gewünschte Interrupt jedoch die Nummer 10? Dann hast Du das Datenblatt falsch gelesen oder Du hast das falsche Datenblatt. Beim Mega16 hat laut Seite 45 der TIMER1_OVF_vect die Vectornummer 9. Da das DB mit 1 anfängt zu zählen, bei der avr-libc aber mit 0 angefangen wird, ist __vector_8 völlig korrekt.
Hi, sorry mir ist der Fehler selbst aufgefallen, nachdem ich noch eine Stunde rumprobiert habe.... oben fehlt beim TIMSK zwei mal das << Und im Datenblatt hab ich mich auch noch verlesen. Heut war einfach nicht mein Tag:-) Entschuldigt die Aufregung! mfg Benedikt
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.