Nein, dadurch dass der PortB Interrupt aktiviert ist (INTCON, RBIE und INTCON, GIE) sind ja Interrupts auf Pegelwechsel an PortB4-7 erlaubt.
Beim ersten Durchlauf funktioniert es ja: Der PIC schläft zunächst ein und auf Pegelwechsel von high zu low startet die ISR und das UP wird abgearbeitet.
Das Interruptflag was gesetzt wurde wird zurück gesetzt und der RB Interrupt Enable wird wieder aktiviert.
Somit sind die Interrupts wieder erlaubt und der PIC geht schlafen.
Ein Interrupt durch Pegelwechsel an RB4-7 soll den PIC16F84A laut Datenblatt wecken (macht er ja im Prinzip auch beim 1. Durchlauf).
Wenn ich das in MPLAB simuliere klappt alles wunderbar, aber in der Schaltung funktioniert es komischerweise nicht.
Am Unterprogramm kanns nicht liegen, das funktioniert ohne sleep und ohne Interruptroutine.
Sonst noch jemand ne Idee?
Lesezeichen