Probleme mit dem drehgebr 8051 in ASM

Gast #937210
Lesenswert?

Hallo Forumsgemeinde

ich habe hier 2 Routinen zum Auslesen eines Drehgebers.
Die erste ( Getgeber1: arbeitet mit den Pollin Gebern so lala)
( Verluste )
Die zweite Getgeber2: leider gar nicht.
Ich finde den entscheidenden Unterscheid nicht warum die 2. gar nicht 
will.
Bei der 1. Routine frage ich zuerst die stabile Spur ab, da die Geber am 
"Nulpunkt" sehr instabil sind.
Habe mit den Gebern von CSD gleiche Probleme.

"Int" ist ein Bit das in der ISR zurück gesetzt wird.
Die ISR läuft jede 1ms. Bei 3,4 oder5 ms siehts genauso aus.
Plus und Minus sind Flags.
Der Geber hängt an P3.4 (A) und P3.5. (B)
GeberO ist der "alte" Wert vom Geber.
In der LUT steht 1 für Plus, 2 für Minus und Null für .... Nix.
Angehängte Dateien:
Gast #937775
Lesenswert?

Warum fragst du den Drehgeber nicht einfach über einen externen 
Interrupt ab? Kanal A auf INT0. INT0 auf fallende Flanken einstellen. In 
der ISR eine kleine Warteschleife, von mir aus auch mit nem Timer und 
dann Kanal B abfragen. Die Drehrichtung wird von Kanal B angegeben. bei 
mir klappt das einwandfrei. Lediglich bei schnellen Drehungen treten 
Verschlucker auf.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren