mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Pin Interrupt Atmega168


Autor: Thorsten S. (whitenoise)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe ein Problem mit dem Pin Change Interrupt beim Atmega. Ich habe 
folgendes laut Datenblatt gemacht:


  // Interrupt
PCICR |=(1<<PCIE1); // PCIE1 pin change interrupt auf  8 bis 14 
aktiviert
PCMSK1|=(1<<PCINT11);   // pcint11 aktivieren
EICRA |=(1<<ISC10) | (1<<ISC11);  // auf steigende Flanke stellen
sei();

Der Pin Interrupt soll auf steigende Flanke reagieren, doch er kommt 
immer auf beiden Flanken. Folgendes habe ich schon probiert:

-EICRA garnicht anrühren (default soll ja 0 sein)
-EICRA = 0 gesetzt
-EICRA = 0xF gesetzt

Hilft alles nicht, reagiert wird immer auf steigende und fallende.

-überprüft ob programm auch wirklich aktuell (anhand ausgabe am display)

Das Signal ist sauber, und prellfrei, es wird eine Variable im Interrupt 
hochgezählt, und diese erhöht sich reproduzierbar immer genau um 1 bei 
fallender sowie steigender Flanke, wie kann das sein?

Dank Euch,
Thorsten

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Hilft alles nicht, reagiert wird immer auf steigende und fallende.

Das ist die Eigenart von PIN-Change-Interrupts. EICRA gilt nur für INT0, 
INT1....

MfG Spess

Autor: Thorsten S. (whitenoise)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo spess,

wenn ich recht verstehe gilt er also nicht für die Gruppe, sondern die 
EICRA Einstellungen sind (bei Atmega168) für die Pins INT0 und INT1, 
mehr EICRA bits gibt es dort ja nicht... verstehe ich das richtig?

Gruß,
T.

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten S. schrieb:
> Hallo spess,
>
> wenn ich recht verstehe gilt er also nicht für die Gruppe, sondern die
> EICRA Einstellungen sind (bei Atmega168) für die Pins INT0 und INT1,
> mehr EICRA bits gibt es dort ja nicht... verstehe ich das richtig?
>
> Gruß,
> T.

jap

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>verstehe ich das richtig?

Ja. Wenn du mit dem PC-Interrupt nur auf eine bestimmte Flanke reagieren 
willst, dann in der ISR nachsehen, welchen Pegel das Pin hat und beim 
falschen gleich wieder raus.

MfG Spess

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.