PIC16F887 PIN Change Interrupt Problem

Gast #3533411
Lesenswert?

Hallo Leute,

ich hätte da mal eine Frage zum 887 den ich für meine Berufsausbildung 
benötigt.

Ich möchte einen PIN Change Interrupt an RB6 oder RB7 aufrufen. Habe 
auch soweit alles richtig konfiguriert etc. Allerdings hängt der PIC so 
lange wie ich die Taste gedrückt halte in der ISR. Sollte er nicht 
eigentlich nur bei einem Flankenwechsel den Interrupt erneut aufrufen? 
Also so wie er es an RB0 richtig macht? (Siehe Datenblatt)

Habe ich hier einen Denkfehler? PIN Change Interrupt heißt doch 
flankengesteuert?? Wenn ich den Taster halte ändert sich doch nix?
#3533814
Lesenswert?

Versuche in der ISR PORTB zu lesen oder zu schriben, damit das 
Eingangslatch neu geladen wird.

Microchip schrieb im Datenblatt auf S.49:
>For enabled interrupt-on-change pins, the present value
>is compared with the old value latched on the last read
>of PORTB to determine which bits have changed or
>mismatched the old value. The ‘mismatch’ outputs of
>the last read are OR’d together to set the PORTB
>Change Interrupt flag bit (RBIF) in the INTCON register.
>This interrupt can wake the device from Sleep. The user,
>in the Interrupt Service Routine, clears the interrupt by:
>a) Any read or write of PORTB. This will end the
>   mismatch condition.
>b) Clear the flag bit RBIF.

P.S. Wenn das nicht die Lösung ist, solltest du deinen Code posten.

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