PIC18F4580 interrupt on change

Gast #6534253
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.
Gast #6534297
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.
Gast #6534362
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

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