Hallo, hat schon mal jemand erfolgreich das QEI Interface von einem LPC verwendet? Ich wollte mal einen Standard-Drehgeber am LPC1769 mittels QEI einlesen. Leider bekomme ich es nicht hin; mein QEIPOS Register ist immer 0. Ich habe wie im Manual beschrieben QEI im PCON eingeschaltet, den Clock für QEI gesetzt und die Eingänge ausgewählt (MCI0, MCI1 MCI2). Wahrscheinlich fehlt noch irgendeine Initialisierung. Wäre nett, wenn jemand einen Tipp (oder ein Beispiel) hätte. Gruß Andreas
Ich kann nur raten, da ich den LPC nicht verwende: Sind die Pins da auch mehrfach belegt? Wenn ja: hast du die in den richtigen Modus geschaltet, so dass sie auch als Eingänge für den QEP arbeiten und nicht noch irgend welche GPIOs oder sonstwas sind?
Ja, für die Pins ist die Funktion QEI ausgewählt (wird beim LPC im sog. PINSEL Register :-) gemacht).
Eine Beschreibung, wie die von dir gelieferte, ist nicht hilfreich bei der Fehlersuche. Du schreibst im Prinzip: - Ich mach das und das - das mach ich richtig - es funktioniert aber nicht - Was mach ich falsch? Wie wärs mit mehr Informationen, z.B. dem Quelltext von dir?
Anbei etwas Code. Läuft bei mir seit Jahren in einem Radiowecker für Sender- und Menüauswahl. Funktioniert immer noch wie am ersten Tag. Hinweis: currentTimer() liefert einen Zeitstempel und elapsedTime(x) gibt die Differenz zwischen einem Zeitstempel und der aktuellen Zeit in Millisekunden. - Michael PS: Angeschlossen ist der Geber an P1[20] und P1[23].
:
Bearbeitet durch User
Die Zuweisung an MAXPOS fehlte.
1 | LPC_QEI->QEIMAXPOS = (typeof(LPC_QEI->QEIMAXPOS)) -1; |
BTW: typeof(...) -1 kannte ich gar nicht. Ist wohl so was wie maximaler Wertebereich. Jetzt geht es jedenfalls! Vielen Dank!
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.