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.