Drehimpulsgeber auslesen.

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 11 2024  11:43:37      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Drehimpulsgeber auslesen.

    







BID = 86752

Midnight

Stammposter



Beiträge: 256
 

  


Hallo,

heute wäre wohl ein Tag an dem ich lieber im Bett geblieben sein sollte.
Ich habe einen Alps Drehimpulsgeber an nem AT89C2051.
Der soll je nach Drehrichtung eine Zählvariable hoch/runter zählen.
Wie der Funktioniert ist klar. Zwei Impulse und je nach Drehrichtung der eine oder der andere zuerst.
Also habe ich in meinem Programm einfach die beiden Ports abgefragt an dem die Impulse liegen (übrigens einfach gegen GND) und je nach dem in zwei Unterprogramme verzweigt. In den Unterprogrammen habe ich dann den zweiten Impuls erwartet, und gewartet bis der vorbei war... Hat der Controller leider nicht immer mitbekommen, da je nach Drehgeschwindigkeit beim "Abwarten" des zweiten Impulses dieser schon da war... Also Essig... Hab ich vorrausgesetzt das das der schon da ist, gut bei einigermaßen Geschwindigkeit gings... langsam wiederum nicht... Hab ich mir also über zwei Interrupts beholfen, in der Interruptroutine sofort die Interrupts aus, und gezählt... leider war der Controller teilweise schon wieder aus der Routine raus und hat gleich wieder zurück gezählt...
Da ich heute noch was laufendes haben wollte habe ich die Interruptvariante einfach behalten, und habe 100mS Verzögerung eingebaut... Nicht elegant aber geht erstmal, denn bei schnellerem Drehen ignoriert er halt einfach...

Da ich heute scheinbar für µC und Elektronik zu doof bin... Wie mache ich das denn am elegantesten?

Gruß

Simon

BID = 86761

Benedikt

Inventar

Beiträge: 6241

 

  

Schau mal auf
http://www.mikrocontroller.net
Dort mit der Suchfunktion (oder im Code Forum) müsstest du mehrere Routinen, mit und ohne Interrupts finden.

BID = 86775

Midnight

Stammposter



Beiträge: 256

@ Benedikt:

Nur ne kleine Verständnisfrage...

Bei Deinem Link durchläuft der Drehimpulsgeber pro Step scheinbar nur eine Änderung, oder sehe ich das falsch?

Gut, auf den Gray Code hätte ich auch selber kommen können, aber der Alps durchläüft pro Step (also eine Raste weiter) nen kompletten Gray-Code....
Und dabei ist die Zeitliche Abfolge ungewiss, denn den bestimmt die Geschwindigkeit des Drehens...

Gruß

Simon

BID = 86796

ERDI-Soft

Stammposter



Beiträge: 200
Wohnort: Offenburg
Zur Homepage von ERDI-Soft ICQ Status  

Die "zeitliche Abfolge" ist egal, da nur Änderungen übernommen werden. Wird also 100 mal der gleiche Wert gelesen, wird 100 mal keine Änderung an der Zählvariablen vorgenommen.

Zudem kannst du den Wert, den du erhälst, ja durch 4 teilen. Dann hast du auch das richtige Ergebnis.
Hab das Ganze in ASM für nen AVR programmiert, falls es dich interessiert. Funktioniert einwandfrei. :D
Und Geschwindigkeit ist auch kein Problem.

_________________
Wie immer gilt: Erst googeln, dann fragen!

(Für ICQ bitte erst Anfrage per PM, da alles andere nicht angenommen wird.)

BID = 86806

Midnight

Stammposter



Beiträge: 256

Gut, jetzt weiß ich langsam wo mein Gedankenfehler lag...
Heute habe ich keine Lust mehr, werde ich aber morgen mal ausprobieren.....

Gruß Simon


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 9 Beiträge verfasst
© x sparkkelsputz        Besucher : 182422723   Heute : 1763    Gestern : 5459    Online : 350        29.11.2024    11:43
4 Besucher in den letzten 60 Sekunden        alle 15.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0182259082794