mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S external interrupt oder PIO interrupts


Autor: Lutz Kunze (husky22)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: ibos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich moche machen pulse auf die pio number porta.2 and the richtung of 
the porta 15

wie macht the initial register ot the irq0

danke fur ihre helfe

Autor: netseal (Gast)
Datum:

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

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

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

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

AT91C_BASE_PIOA->PIO_PPUDR = BUTTON_MASK;

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

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

AT91C_BASE_AIC->AIC_IECR  = 1 << AT91C_ID_PIOA; //Interrupt Enable Command Register

Autor: ibos (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.