Forum: Mikrocontroller und Digitale Elektronik Quadrature Encoder Interface LPC


von Andreas R. (andreasr)


Lesenswert?

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

von BamBam (Gast)


Lesenswert?

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?

von Andreas R. (andreasr)


Lesenswert?

Ja, für die Pins ist die Funktion QEI ausgewählt (wird beim LPC im sog. 
PINSEL Register :-) gemacht).

von qei (Gast)


Lesenswert?

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?

von Andreas R. (andreasr)


Lesenswert?

OK, code kommt heut' Abend, bin noch @work.

von Michael G. (let)


Angehängte Dateien:

Lesenswert?

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
von Andreas R. (andreasr)


Lesenswert?

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
Noch kein Account? Hier anmelden.