AT91SAM7S external interrupt oder PIO interrupts

OP #831538
Lesenswert?

hallo an alle,

bin hier neu und hab mal ne frage.ich habe mir das datenblatt des AT91 
durchgelesen.so wie ich es verstehe,kann man da nur 2 externe interrups 
erzeugen lassen am FIQ und IRQ Input.stimmt das?
oder kann ich von jedem beliebigen I/O einen interrupt erzeugen?hab zwei 
taster,nicht wie auf dem evaluation board an den FIQ und IRQ 
angeschlossen,sondern an PA27/DTR1 und PA28/DSR1.kann ich über diese 
I/O's auch interrupts erzeugen?und wenn,was für eine interrupt-ID brauch 
ich dann da?

bin dankbar für eure hilfe!
Gast #3094635
Lesenswert?

man kann für jeden pio einen irq vergeben. mit den FIQs kenne ich mich 
nicht aus.
1
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA);
2
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOB);
3

4
AT91C_BASE_PIOA->PIO_PER = ((BUTTON_MASK));   //Parallel Input/Output Enable Register
5

6
AT91C_BASE_PIOA->PIO_IFER = ((BUTTON_MASK)); //Glitch Input Filter Enable 
7
Register
8

9
AT91C_BASE_PIOA->PIO_IER = ((BUTTON_MASK));   //PIO Interrupt Enable Register
10

11
AT91C_BASE_PIOA->PIO_PPUDR = BUTTON_MASK;
12

13
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_PIOA] = (unsigned int)(PIOAIrqHandler); //Source Vector Register
14

15
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_PIOA] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 6; // priority (0=lowest and 7=highest)
16

17
AT91C_BASE_AIC->AIC_IECR  = 1 << AT91C_ID_PIOA; //Interrupt Enable Command Register
Gast #3104880
Lesenswert?

ya , ich habe gesen dies,haber das geht fur die FIQ interrupt .
wir haben zwei pulse low-> hight and hight->low

fur die external interrupt IRQ0  das ist equal ?
ich glaube ,gib andere strabe

so wir haben nur eine pulse ? haber das geht nicht "one result"

AT91C_BASE_AIC->AIC_SVR[AT91C_ID_IRQ0] = (unsigned int)(PIOAIrqHandler); 
//Source Vector Register

AT91C_BASE_AIC->AIC_SMR[AT91C_ID_IRQ0] = 
AT91C_AIC_SRCTYPE_INT_LOW_PULSE| 6; // priority (0=lowest and 7=highest)

danke fur ihre antwort

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