www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S - IRS wird doppelt ausgelöst


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Gerade versuche ich, mit dem oben genannten Prozessor eine positive 
Flanke an 'PIN26' aufzuspüren. Das funktionert so weit auch ganz gut, 
bis auf die Tatsache, dass die ISR doppelt ausgelöst wird. Vielleicht 
könnt ihr mir bei der Fehlersuche helfen.

Ich habe versucht, im Quelltext alle Variablen so zu kommentieren, wie 
ich sie verstehe - es wäre nett, wenn ich mich korrigiert, falls ihr was 
falsches findet.
//Pin 26 als Input setzen
AT91C_BASE_PIOA->PIO_ODR = 1<<26;
AT91C_BASE_PIOA->PIO_PER = 1<<26;

//IR auf AIC Ebene konfigurieren, Quelle, Prio und ISR Handle zuweisen
AT91_BASE_AIC->AIC_IDCR = AT91C_ID_PIOA; //quelle
AT91_BASE_AIC->AIC_SVR[AT91C_ID_PIOA] = &IsrHandler; //Handler zu PIOA
AT91_BASE_AIC->AIC_SMR[AT91C_ID_PIOA] = ((0x3 <<  5)|6); //src. pos. edge, prio 6
AT91_BASE_AIC->AIC_ICCR = 1<<AT91C_ID_PIOA; //register leeren

//IR auf Peripherieebene einschalten
AT91C_BASE_PIOA->PIO_IER = 1<<26;

//IR auf AIC Ebene einschalten
AT91_BASE_AIC->AIC_IECR = 1<<AT91C_ID_PIOA;

void IsrHandler(void)
{
...
AT91C_BASE_AIC->AIC_EOICR = 0; //end of IR
}

Autor: vlad (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
witrd die positive Flanke durch einen taster erzeugt?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Leider etwas spät, aber besser als nie :)

Der Pin liegt auf high (3V) und wird vom PPM Signal eines 
Modellbauempfängers auf low gezogen. Im Laufe der Signalperiode gibt das 
10 steigende Flanken. Ausgelöst wird der IR 20 mal

Gruß, Christian

Autor: gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo christian,
der pio-interrupt reagiert auf beide flanken, daher erhältst du 2 
interrupts.

gruss
gerhard

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.