Forum: Projekte & Code Rotary Encoder Panasonic EVEC von Pollin


von Markus J. (doc_database)


Angehängte Dateien:

Lesenswert?

Hallo Forumgemeinde,

ich habe jüngst den PaPDesingner ausprobiert und finde das Ergebnis sehr 
gut.
Desweiteren habe ich für den oben bennanten Rotary Encoder eine 
Programmablaufplan erstellt.

Ich finde, das ein solches Dokument auch für den Anfänger besser 
begreiflich ist, als Quellcode.
Außerdem kann man nmit einem gut ausgearbeiteten PAP für jeden Prozessor 
schnell einen eigenen Quellcode erstellen.
Gute Ideen sollen ja nicht deswegen verworfen werden, weil andere 
Entwickler den Quellcode für einen spezifischen µC nicht verstehen.

von Markus J. (doc_database)


Angehängte Dateien:

Lesenswert?

Hallo Forumgemeinde,

ich habe jüngst den PaPDesingner ausprobiert und finde das Ergebnis sehr
gut.
Desweiteren habe ich für den oben bennanten Rotary Encoder eine
Programmablaufplan erstellt.

Ich finde, das ein solches Dokument auch für den Anfänger besser
begreiflich ist, als Quellcode.
Außerdem kann man nmit einem gut ausgearbeiteten PAP für jeden Prozessor
schnell einen eigenen Quellcode erstellen.
Gute Ideen sollen ja nicht deswegen verworfen werden, weil andere
Entwickler den Quellcode für einen spezifischen µC nicht verstehen.

EDIT:
Das Bild war wohl etwas zu groß, daher habe ich es geschrumpft und den 
Beitrag kopiert und nochmals eingefügt.
Gibt es eine Regel/Richtlinie, wie groß Bilder sein dürfen?

von Benedikt K. (benedikt)


Lesenswert?

Das oberste Bild ist ein wenig zu groß, das untere etwas zu klein, 
zumindest kann man den Text schlecht/garnicht lesen. Generell würde ich 
sagen, gerade so groß, dass man den Text gut lesen kann. Ich hätte daher 
irgendeine Zwischengröße gewählt, oder das ganze als PDF gemacht, da 
kann man so stark Vergrößern wie man es möchte.

Jetzt aber mal eine Frage zur Software:
Das ganze läuft in einem Timer Interrupt ? Mir ist nämlich bei den 
Pollin Teiler augefallen, dass die Phasenverschiebung zwischen den 
beiden Signalen nicht 90° beträgt, sondern eher irgendwo im Bereich 10° 
oder so liegt. Dadurch ist es schwer den Bereich zwischen den 
Raststellungen zu erwischen, wenn man schnell dreht. Ich musste daher 
den Interrupt mit ein paar kHz laufen lassen.

von Markus J. (doc_database)


Lesenswert?

Hallo Benedikt,

zum einen habe ich den PAP erstellt, nachdem ich mit dem Encoder etwas 
gespielt habe und irgendwann zu dem Entschluß gekommen bin, das eine 
vernünftige Lösung nur mit einem PAP zustande kommt.

Demnach sollte ich das ganze jetzt mal implementieren.

Du mußt wissen, das ich mit einem PIC18F4550 arbeite. Der kleine Bruder 
davon ist 18F2550 bzw. 18F4450, 18F2450. Außerdem implentiere ich in C.

Dieser hat an den Pins 4-7 am Port B einen Interrupt-on-Change.
Entgegen anderlautender Meinung denke ich, das man damit eine solche 
Applikation sehr gut relisieren kann.

Die dargestellte Anwendung wird von einer ISR aufgerufen. Der Interrupt 
wird aufgerufen, sobald sich an den beiden Pins etwas rührt.
Für die Warteschleife verwende ich einen Aufruf der Softwaremäßig einen 
Delay von 2ms erzeugt.

von Benedikt K. (benedikt)


Lesenswert?

Markus J. wrote:

> Dieser hat an den Pins 0-3 am Port B einen Interrupt-on-Change.
> Entgegen anderlautender Meinung denke ich, das man damit eine solche
> Applikation sehr gut relisieren kann.

Das sehe ich ähnlich. Vor allem bei den Panasonic Teilen. Die laufen bei 
mir mit externem Interrupt eindeutig am besten.

> Für die Warteschleife verwende ich einen Aufruf der Softwaremäßig einen
> Delay von 2ms erzeugt.

2ms Warteschleife in einer Interruptroutine sind keine gute Lösung. Das 
würde ich ein wenig überarbeiten. Ich mache das z.B. so, dass zwischen 2 
Schritten eine Mindestzeit liegen muss.

von Markus J. (doc_database)


Lesenswert?

Verstehe ich noch nicht ganz, wie du das mit der Mindestzeit meinst.
Meinst du, das der Interrupt erst nach einer gewissen Zeit erneut 
ausgelöst werden kann (also 2ms) und die Routine erneut durchläuft. 
Unter geänderten Vorzeichen, sprich: nicht mehr die Drehrichtung zu 
bestimmen, sonden das Prellen abzuwarten und das Erreichen der rastenden 
Endlage zu bestimmen?

2 Anmerkungen dazu:
Es wird auf jeden Fall komplizierter.
Zum anderen muß man immer im Einzelfall prüfen, wofür die Applikation 
gemacht ist.
Bei mir ist es egal, was während der Bedienung des Encoders außenherum 
passiert, weil ich alles stoppe.
Anders ist es natürlich, wenn Applikationen weiterlaufen müßen und in 
der Zeit (2ms) nicht abgearbeitet werden. Ack!

von Markus J. (doc_database)


Angehängte Dateien:

Lesenswert?

@ Benedikt

Meintest du etwa so?
Größe geändert, Dateigröße akzeptabel, finde ich.

von Markus J. (doc_database)


Angehängte Dateien:

Lesenswert?

@ Benedikt

Wo er Recht hat, hat er Recht:
Als PDF wird das Dokument viel kleiner und lesbarer.
Version 3

von digg (Gast)


Lesenswert?

Mal ne Zwischenfrage: womit (welchem Programm) hast du denn den PAP 
erstellt??

von Markus J. (doc_database)


Lesenswert?

Google nach PaPDesigner 2.2.05
Steht auch ganz oben und in jedem PAP.

von digg (Gast)


Lesenswert?

Huch, steht wirklich da - > aber nicht ganz oben -> hab ich übersehen -> 
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.