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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.