Forum: Mikrocontroller und Digitale Elektronik PIC Interrupt Routine nicht aufgerufen


von Maxi (Gast)


Lesenswert?

Hallo zusammen,

ich bin dabei mit dem PIC18F2320 Hall Sensor Signale mit den 
Interrupt-On-Change Eingängen einzulesen. Ich habe global die Interrupts 
freigegeben sowie die drei Interrupts On-Change auf Eingang gesetzt und 
freigegeben. Die Flanke ist auf fallend gestellt. Leider springt das 
Programm nie in die Interrupt Service Routine. Könnt ihr mir 
weiterhelfen?

void __interrupt () hall_sensor_mode (void)
{
  PORTCbits.RC1 = 1; //Setzen eines Ausgangs zum Testen
}

Danke im Voraus!

Gruß
Maxi

von tastendrücker (Gast)


Lesenswert?

Pins auf digital gesetzt?  (sind nach PowerOn auf analog)

von Maximilian K. (maximilian_k742)


Lesenswert?

Ja, ich hab die Pins mit folgendem Code auf digital gesetzt:
#pragma config PBAD=DIG

von Thomas (Gast)


Lesenswert?

Bin jetzt nicht der Fachmann bei PIC, aber wird damit nicht nur Port B 
digital gesetzt und du möchtest mit Port C arbeiten?

#pragma config PBAD=DIG

von Maximilian K. (maximilian_k742)


Lesenswert?

Ja das stimmt, aber Pin C ist defalutmäßig auf digital gesetzt und der 
Befehl funktioniert auch in der Main Funktion.. es geht darum, dass das 
Interrupt Flag der Interrupt On Change Eingänge nicht gesetzt wird 
obwohl ein Rechtecksignal anliegt.

von Maximilian K. (maximilian_k742)


Lesenswert?

Okay Fehler gefunden... Ich habe zwar die Ports auf digital gesetzt über 
den Config Befehl, nutze aber gleichzeitig den AD-Wandler und habe bei 
der Initialisierung alle AN-Eingänge manuell auf analog gesetzt.

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.