Hi BlooD,
wenn ich mir nicht sicher bin, ob ein Impuls ankommt schreibe ich mir eine Zusatzroutine, die mir die Impulse entweder in der Zeit verlängert oder die Anzahl der Impulse zählt.
Da in Deinem Fall die Impulse alle 79ms kommen empfiehlt es sich die positiven (oder auch negativen) Flanken der Impulse zu zählen. Wenn die gezählten Impulse nicht der Lochanzahl entsprechen hast Du ein großes Problem. Wenn die Löcher/Positionen nicht richtig erkannt werden, hast Du keine Change die Positionen anfahren zu können.
Analogeingänge sind im Allgemeinen langsamer als Binäreingänge. Wenn ein Interrupt - Eingang frei ist, würde ich sogar den nehmen.
Bevor die Fragen kommen sage ich gleich, das ich selbst noch keine Interrupts programmiert habe. Interrupts sind jedoch um einiges schneller, weil die Auslösung der Interrupts von der Hardware gesteuert werden. Abgesehen davon brauchst Du keine zyklischen Abfragen zu programmieren, die nur Resourcen beanspruchen und extrem Zeitkritisch sind.
Grüße Klaus
Lesezeichen