Hi, wenn einer Zeit hat kann er sich bitte mal den Code ankucken. Bin beim lernen wie man mit Interrupts umgeht am LPC2148 und dem hier angebotenen Olimex board. Problem: beim setzen eines Breakpoints in der ISR wird nie da hingesprungen. Hab irgendwas von startupfiles gelesen das man darauf achten soll was da eingetragen ist. Versteh diese aber nur geringfügig. hab auch versucht wie in einigesn example- codes mit void fnEXT2_ISR(void) __isr; zu arbeiten. Meine Entwicklungsumgebung ist Crossworks for ARM und das kennt dies anscheinend nicht :-(. Arbeite mit keinen vorgegebenen Headern da ich keine kenne. Kann mit einer weiterhelfen??? danke <CODE> #define VIC_EINT2 16 void fnInterruptInit(void) { VICIntEnClr = 0xFFFFFFFF; //alle Interrupts löschen VICIntSelect = 0x00000000; //Bestimmt ob IRQ = 0 oder FIQ = 1 //hier alle IRQ //---------------------------------------------------------------------- ---- //VICVectAddrX = .... speichert die Sprungstelle für die entsprechende ISR (code/ram adresse) //VICVectCntX = ..... bestimmt die Priorität der ausgewählten ISR //---------------------------------------------------------------------- ---- VICVectCntl0 = (1<<5) | VIC_EINT2; // Slot enablen /IRQ's VICVectAddr0 = (unsigned int) fnEXT2_ISR; EXTMODE = 0x04; //EINT2 = Flankengesteuert EXTPOLAR = 0x00; //fallende Flanke PINSEL0 = 0x80000000; //PIN 0.15 ist //Eingangspin für EINT2 EXTINT = (0 << 2); //Flag zurücksetzen VICIntEnable = (1 << VIC_EINT2); //Enabeln der benötigten //Interrupts //hier EINT2 enable //(Button1) } //--------------------------------------------------------------- //ISR //--------------------------------------------------------------- void _attribute_ ((interrupt("IRQ"))) fnEXT2_ISR(void) { u8Modus = ~u8Modus; if (u8Modus == 0x00) { fnLED1ON(); fnLED2OFF(); } else { fnLED1OFF(); fnLED2ON(); } EXTINT = (0 << 2); //Flag zurücksetzen } </CODE>
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.