ich möchte unter gcc eine Interruptroutine in Assembler schreiben. wenn ich wie angegeben #include <avr/io.h> .global PCINT0_vect PCINT0_vect: push r2 pop r2 reti wird nichts in die Sprungtabelle eingetragen, so gehts aber: #include <avr/io.h> .global __vector_2 __vector_2: push r2 pop r2 reti was kann da falsch sein?
Walter wrote:
> was kann da falsch sein?
Der Name des Vektors? Deine avr-libc-Version zu alt?
Guck doch mal in <avr/ioXXX.h> nach, welche Vektornamen es für deinen
Prozessor wirklich gibt.
ist für den Tiny24, in iotnx4.h steht: /* Pin Change Interrupt Request 0 */ #define PCINT0_vect _VECTOR(2) es funktioniert auch wenn ich den Interrupt mit ISR(PCINT0_vect) in C schreibe wie erfahre ich die avr-libc-Version?
uups, peinlich, sorry für die Aufregung ich hatte mir die Sprungtabelle im Simulator in AVRStudio angeschaut, und da zeigt er die Sprungtabelle nicht immer von 0 an (hab einfach nicht auf die Adresse links geschaut), in dem Fall ab Vektor11, warum auch immer. Im Listing ist es korrekt ...
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.