Probleme mit Pin Interrupt Atmega168

OP #1534183
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
#1534200
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
Gast #1534202
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

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