Hallo alle seite, Kann mir bitte jemanden helfen? Ich möchre über Interrupt erst ein Taste abfragen und dann auf pin einlesen. so habe ich die Interrupt initialisier PINSEL4 |= (1<<20)|(1<<23); // set EINT0 and EINT1:> VICVectAddr14 = (unsigned long)EINT0_ISR; // interrupt an Taste VICVectAddr15 = (unsigned long)EINT1_ISR; // interrupt an Pin VICVectPriority14 |= (1 << 0) ; // priority levels for EINT0 VICVectPriority15 |= (1 << 1); // priority levels for EINT1 VICIntEnable |= (1 <<14)|(1 << 15); // enable EINT0 and EINT1 EXTMODE = 0x00000001; /* EINT0 edge trigger , EXTPOLAR = 0x00000000; /* EINT0 is falling-edge*/ und di Routine sieht so aus /************************* EINT 0 **********************/ void EINT0_ISR (void) __irq { switch(state) { case 0 : state = 1; Motor_Forward(4); break; case 1 : state = 0; Motor_Backward(4); break; default: state=1; break; } EXTINT = 0x00000001; VICVectAddr = 0;/* Acknowledge Interrupt */ } /************************* EINT 1 **********************/ //Impulse Count void EINT1_ISR (void) __irq { NumImp++; while((FIO2PIN & (1<<12))){} if(NumImp == IMP_NUMBER) // After 5 Impuls Stop { NumImp = 0; //running = 0; PWM_Stop(4) ; } EXTINT = 0x00000002; VICVectAddr = 0; /* Acknowledge Interrupt */ } Ziel ist Motor über Lichtschranke zu steuern. PS: Der INT über die Taste funktionier aber ich habe keine ahnung warum der Pin nicht eingelesen wird.
hallo, der Pin wird nicht eingelesen, weil du den entsprechenden Eingang nicht wieder als solchen schaltest. /************************* EINT 1 **********************/ //Impulse Count void EINT1_ISR (void) __irq { NumImp++; PINSEL4 &= ~(1L<<23); // EINT1 wieder als GPIO while((FIO2PIN & (1<<12))){} PINSEL4 |= (1<<23); // set EINT1, das Ganze wieder rückgängig if(NumImp == IMP_NUMBER) // After 5 Impuls Stop { NumImp = 0; //running = 0; PWM_Stop(4) ; } EXTINT = 0x00000002; VICVectAddr = 0; /* Acknowledge Interrupt */ }
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.