Hallo,

Zitat von
Manf
Es hat eine Vereinfachung gegeben
Hab die Schaltung aufgebaut. Aber kaum, daß ich ein Programm dazu schreiben wollte, fiel mir auf, daß ich eigentlich keine Taktimpulse brauche, um nur bei steigender Flanke auszuwerten. Der bei mir vorgesehene Pin Change Interrupt wird bei steigender und bei fallender Flanke ausgelöst und somit hat sich folgende Schaltung ergeben:
Code:
Delay XOR
______ __
.--|______|--------\\ \
| || |----------- UP/DOWN
| .-----//__/
| |
| |
| | XOR
| | __
A -------o------------)-----\\ \
| || |----------- CLOCK
B --------------------o-----//__/
Bei jeder Änderung durch das Quadratursignal an A oder B wechselt Clock seinen Pegel und kann einen PCINT auslösen. Das UP/DOWN Signal kann dann in der ISR ausgewertet werden. Das Delay bestimmt die Zeit, in der ein gültiges UP/DOWN Signal anliegt und ausgewertet werden muß.
Damit könnte man mit einem 7414 und R/C für das Delay und eventuelle Aufbereitung des Encodersignals plus einem 7486 für zwei Encoder auskommen und die ISR(s) ist auch sehr kurz zu halten, werden aber bei allen A B Pegelwechseln aufgerufen.
Die Anordnung scheint gut und richtig zu funktionieren. Hoffe nicht, das mir irgendein Testfehler unterlaufen ist.
Jetzt muß ich mich in meinem aktuellen Projekt nur noch zwischen der SW-Lösung und dieser HW-unterstützten entscheiden
und versuchen den Phasenversatz möglicht genau auf 90° zu bringen.
Gruß
Searcher
Lesezeichen