Gast
#2922883
Hallo, ich habe mal eine Frage zu einer Implementierung eines Jogdial Dekoders wie sie hier gemacht wurde: http://www.mikrocontroller.net/articles/Drehgeber#Beispielcode_in_VHDL So wie ich das sehe, wird dort pro Signal A bzw. B die fallende und steigende Flanke ausgewertet. Wenn eine Flanke erkannt wurde, wird der Pegel des anderen Signals betrachtet. Je nachdem welche Flanke erkannt wurde und welchen Pegel das entpsrechend andere Signal hatte, wird die Drehrichtung bestimmt. Soweit so gut. Was mich jetzt aber wundert ist, wenn ich die Flankenerkennung für beide Signale A und B mache, wird doch von einem Rastpunkt zum nächsten zwei mal die gleiche Drehrichtung erkannt. Also wenn ich z.B. im Uhrzeigersinn Drehe wird erst die Flanke von Signal A erkannt. Dann, dass der Pegel von B '0' ist -> up_down und ce wird gesetzt und wir haben somit eine Drehbewegung im Uhrzeigersinn. Noch im gleichen Rastpunkt wird die steigende Flanke von Signal B erkannt, der Pegel von A ist '1' und es wird wieder up_down und ce gesetzt -> eine weitere Drehung im Uhrzeigersinn. Das gleiche auch für die Drehung gegen den Uhrzeigersinn. Soll das so sein? Oder ha ich da irgendwo nen Denkfehler? Wenn ich nen Counter dahinter habe dann will ich doch, dass der pro Rastpunkt auch nur um eins hoch- bzw runtergezählt wird. Grüße, Thomas