Forum: Mikrocontroller und Digitale Elektronik AT91Sam7x-> NutIrqSetMode hat keine Auswirkung


von Philipp (Gast)


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
}

von Philipp (Gast)


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?

von Philipp (Gast)


Lesenswert?

niemand der mir helfen kann?

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
Noch kein Account? Hier anmelden.