Encoder Rotary Probleme

Support-Forum für Deutschsprachige, die in ihrer Muttersprache schreiben möchten.

Moderator: Benj

santhish99
Posts: 2
Joined: Thu Nov 02, 2017 9:19 am
Been thanked: 1 time
Contact:

Encoder Rotary Probleme

Postby santhish99 » Thu Nov 02, 2017 9:32 am

Was ich getan habe:

Das Programm zeigt in der ersten Zeile der LCD den Text "PWM = xxx%" an, wobei xxx eine Variable VAR ist, die nur zwischen 0 und 100 liegt. Es gibt momentan kein PWM-Signal, es ist nur ein Text auf dem LCD .. Wenn ich die Taste drücke, wird der VAR-Wert für PWM% auf 0 zurückgesetzt.
Mein Problem ist, dass ich den PIC18F4550 brauche, um viele andere Aufgaben zu erledigen, das Programm wird später geschrieben, und das Lesen des Drehgebers ist nur eine Nebenaufgabe. Nach dem Datenblatt von - https://www.icrfq.com/part/3873526-PEL1 ... S1024.html
Mit anderen Worten, ich möchte nicht das Lesen in der Hauptschleife des Programms, sondern eine Unterroutine, die eventuell die Interrupts verwendet, unterbricht vielleicht die Änderung an Port B (IOC).
Aber dann merke ich, dass das Lesen nicht so schnell ist, ich vermisse Pulse.
Der Drehgeber sollte normalerweise eine zweitrangige Aufgabe sein, aber wenn er gedreht wird, sollte er schnell gelesen werden, und schließlich seine Subroutinenpriorität für den PIC ändern. Ich bemerke, dass das Schreiben auf die LCD-Anzeige Zeit braucht und der PIC das Lesen der Drehimpulsgeberimpulse verfehlt.
Welche Vorschläge, Codebeispiel könnten Sie zum schnellen Lesen des Drehgebers liefern, aber gleichzeitig nicht zulassen, dass der PIC nur das tut? Irgendeine Idee?

Danke vielmals.

User avatar
LeighM
Matrix Staff
Posts: 1912
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 460 times
Been thanked: 646 times
Contact:

Re: Encoder Rotary Probleme

Postby LeighM » Thu Nov 02, 2017 10:11 am

I would suggest that you call the encoder CheckForChanges() on a timer interrupt.
The timer interrupt interval will depend upon your expected shortest pulse width (maximum speed of rotation).
Then you can read the counter value at any point in your program or main loop.

santhish99
Posts: 2
Joined: Thu Nov 02, 2017 9:19 am
Been thanked: 1 time
Contact:

Re: Encoder Rotary Probleme

Postby santhish99 » Thu Nov 02, 2017 5:05 pm

Danke für Ihre Antwort und Anregung.

Mit freundlichen Grüßen
These users thanked the author santhish99 for the post:
Benj (Mon Nov 06, 2017 1:11 pm)
Rating: 5.26%