Forum: Mikrocontroller und Digitale Elektronik PIC18F4580 interrupt on change


von Danny_678 (Gast)


Lesenswert?

Hallo in die Runde und ein gesunden Neues Jahr noch.

Hab Probleme beim Interrupt on change beim PIC. INT0 bis INT2 arbeiten 
ohne Probleme...

Beim RB4 bis 7 wird der Port gelesen und wenn der Port beim nächsten mal 
abweicht das RBIF gesetzt.

if (INTCONbits.RBIF)
      {
      INTCONbits.RBIF = 0;                         //clear interrupt 
flag
      }

In anderen Foren & manual hab ich gelesen, das ich den Port erst 
einlesen muss.. ??
    if (INTCONbits.RBIF)
    {
        LastKnownPORTB = PORTB; // clear the mismatch to enable RBIF to 
be cleared.

Ich stehe auf dem Schlauch was ich mit dem eingelesnen Wert machen muss 
und wie ich für jeden einzelnen verschiedenen Port change eine LED zum 
Testen beleben kann.

Wer kann mir bitte helfen? Danke.

von Ste (Gast)


Lesenswert?

Wenn das RBIF Bit gesetzt ist, kommst du in die ISR, auswerten welches 
Portpin sich geändert hat, dann die jeweilige Test-Led ansteuern. Zum 
Schluss das RBIF Bit löschen, damit wird der Interrupt quittiert. Das 
Bit kannst du auch löschen, ohne de n Port ausgelesen zu haben.

von Danny_678 (Gast)


Lesenswert?

Hab an allen B Ports 4 bis 7 parallel ein 0,5 Hz Signal angelegt.

Eine andere LED in der angesprochenen RBIF ISR blinkt aber nicht wenn 
ich nur auf das RBIF schaue. Da muss mehr getan werden. Ich weis leider 
nicht wie und was ?

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.