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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.