AT91Sam7x-> NutIrqSetMode hat keine Auswirkung

Gast #1378889
Lesenswert?

Hallo, kann mir vllt jemand sagen warum der Befehl NutIrqSetMode keine 
Auswirkung auf meinen Interrupt hat? Es ist egal ob ich ihm sage 
HIGHLEVEL oder LOWLEVEL er verhält sich immer gleich. Auch wenn ich den 
Befehl ausklammere. An meinem Pin habe ich im HIGH-Zustand 3,3 V und im 
LOW-Zustand 0 V

Hier meine Interrupt initalisierung
1
void Eingang_Isr(void *arg)
2
{  
3
  NutIrqDisable (&sig_PIOA);
4
  
5
  uint32_t info = 0 ;
6
  
7
  inr(PIOA_ISR);
8
  info = inr(PIOA_PDSR);
9
  
10
  if ((info & (1<<22)) > 0)
11
    { 
12
    ZAEHLER ++ ;  
13
    }  
14

15
  NutIrqEnable(&sig_PIOA); 
16
}
17

18
void Eingaenge_IsrEnable(void)
19
{
20
    NutRegisterIrqHandler(&sig_PIOA, Eingang_Isr, NULL);
21
    outr(PIOA_IER, (1<<22)  );  
22
    NutIrqSetMode (&sig_PIOA,NUT_IRQMODE_HIGHLEVEL) ;
23
    NutIrqEnable(&sig_PIOA);
24
}
Gast #1378905
Lesenswert?

Sorry, noch eben zur Verständigung ich habe eine Lichtschranke an meinen 
Mikro  geschaltet und er soll sobald die Lichtschranke unterbrochen wird 
den Interrupt auslösen. Da die Lichtschranke auf Masse gezogen werden 
muss startet mein Interrupt erst wenn sich die Lichtschranke wieder 
öffnet.

Normalerweise kann ich ihm doch mit dem NutIrqSetMode Befehl sagen wann 
er auslösen soll oder verstehe ich hier den Sinn dieses Befehls nicht ^^ 
???

Sprich wenn ich sage
1
NutIrqSetMode (&sig_PIOA,NUT_IRQMODE_HIGHLEVEL) ;
soll er auslösen wenn der Pin High ist und mit
1
NutIrqSetMode (&sig_PIOA,NUT_IRQMODE_LOWLEVEL) ;
wenn er auf Low steht. Ist das richtig?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren