Gast
#99178
Hi zusammen, Ich habe ein Problem und verzweifle langsam daran. Kurze Beschreibung: Ein Servomotor treibt eine Linearführung an. Damit der Schlitten der Linearführung links und rechts nicht anstoßen kann, benutze ich 2 Lichtschranken um vorher den Motor zu stoppen. So zumindest das Kozept. Die Pulse der Lichtschranken gehen auf 2 External Interruptfähige Ports. Ich verwende ein Phytec Minimodul mit einem C167CR. Die Lichtschranke gehen auf Port 2^14 und 2^15. Die entsprechenden Register sind gesetzt, es wird auf fallende Flanke detektiert. Es wird auch ein Interrupt ausgelöst, wenn der Schlitten von den Lichtschranken erkannt wird. (Fallende Flanke) Nur leider wird auch ein Interrupt ausgelöst, wenn der Schlitten wieder aus dem Bereich der Lichtschranke rausfährt. Also bei der steigenden Flanke. Dass es nicht zu Missverständnissen kommt. Solange der Schlitten vor der Lichtschranke steht bleibt das Signal Low. Während nichts davor ist High. Dementsprechend fällt es beim Reinfahren von High auf Low, beim Rausfahren umgekehrt. Wenn ich direkt am Pin 2^14 mit dem Oszi messe kann ich aber keinen Puls der ein Auslösen des Interrupts herbeiführen könnte erkennen. Komisch ist auch noch, dass der fehlerhafte Interrupt nicht immer ausgelöst wird, das passiert nur hin und wieder. Gleiches passiert auch wenn ich auf die steigende Flanke erkennen lasse. Er reagiert auch auf die fallende. Auf beide Flanken wird zuverlässig reagiert. Woran könnte das liegen? Ich bin echt am Ende mit meinem Latein. Vielen Dank! Gruß Max