Servus zusammen, ich programmiere gerade an einem PIC18F14K50 und versuche dort externe Interrupts zu realisieren. Allerdings kommt dieser nicht durch. Ich habe schon andere Interrupts am Laufen - diese kommen durch. Am grundsätzlichen Aufbau der Software kann es also nicht liegen. Ich habe es sowohl mit INT0 als auch INT1 versucht und auch schon den PIC getauscht. Einen Defekt am PIC halte ich also eher für unwahrscheinlich. Ich habe die PINs mit 10 kOhm gegen Masse geschalten - ich will einen Interrupt bei einer Flanke von 0 auf 1. So sieht die Initialisierung bei mir aus: INTCONbits.GIE = 1; // interrupts on INTCONbits.PEIE = 1; // low priority interrupts on TRISCbits.TRISC0 = 1; // INT0 pin as input INTCON2bits.INTEDG0 = 1; // INT0 interrupt on rising edge INTCONbits.INT0IF = 0; // reset INT0 interrupt flag INTCONbits.INT0IE = 1; // INT0 interrupt on for wake-up TRISCbits.TRISC1 = 1; // INT1 pin as input INTCON2bits.INTEDG1 = 1; // INT1 interrupt on rising edge INTCON3bits.INT1IP = 1; // INT1 high priority INTCON3bits.INT1IF = 0; // reset INT1 interrupt flag INTCON3bits.INT1IE = 1; // INT1 interrupt on for wake-up Irgendjemand eine Idee, was hier schief läuft? Danke euch schon mal :-)
:
Bearbeitet durch User
Du solltest im ANSEL Register die Funktion des entsprechenden Portpins noch auf digital setzen.
McMix schrieb: > Du solltest im ANSEL Register die Funktion des entsprechenden Portpins > noch auf digital setzen. Oooooh Mann, das war's :-) Danke Dir :-)
Ok, irgendwie stehe ich immer noch auf dem Schlauch, auch wenn der Interrupt jetzt funktioniert. Aber ich scheitere daran ein ganze normalen Port als Ausgang zu benutzen. Für mich zum Verständnis am Beispiel Port C. ANSEL = 0; (sollte als Augang aber eh keine Rolle spielen) ANSELH = 0; TRISC = 0; LATCbits.LATC3 = 1; (zeigt keine Wirkung) Beim Port B funktioniert das aber bei RB6 und 7. Diese haben keine Analog-Funktion - daher vermute ich, da es was damit zu tun hat. Aber was? Wäre super, wenn mir da jemand helfen kann. Danke euch schon mal :-)
LVP war aktiviert und damit war der Port durch PGM blockiert...
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.