PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Incremental Drehgeber mit bascom auswerten...



sme-bbg
09.03.2005, 00:00
Wer kann mir sagen wie ich diese drehgeber auswerte ist glaube ich der Gray code...

Ich habe noch einen IRQ und 3 Ports am atmel zur verfügung...

Am liebsten wäre mir aber eine Diskrete Lösung wo ich den Drehgeber anschließe und ich 3 digitale ausgänge habe (Rechts Links Drücken)

Habe so eine schaltung schon mal gesehen weiß aber leider nicht mehr wo...

Gruß Sven

Klaus_0168
09.03.2005, 00:13
Hi Sven,
welche Drehgeber ?? Es gibt mehr als nur einen Typ.

Tachogenerator, Schlitzscheibe, Codescheibe ??
seriel oder parallele Datenausgabe ??

Wie Nummer 5 schon sagte : 'Brauche Input'

Klaus

sme-bbg
09.03.2005, 01:40
Den hier ...
http://de.farnell.com/jsp/endecaSearch/partDetail.jsp?SKU=3282235&N=401

hoffe mal das der link geht ansonsten
Bestellnummer 3282235 bei www.farnell.de


# mechanischer Low-Cost encoder
# 2 oder 4 bit Grey-code
# 2 bit, Kanal L eilt Kanal R um 90 voraus, CW Rotation
# 4 bit Ausgang, absolut

Habe den 2 Bit Gray Typ auf dem schreibtisch liegen.

sme-bbg
09.03.2005, 03:54
Ich glaube ich habe es hinbekommen ... kann das nur gerade nicht testen ...
hier mal der Code

sme-bbg
09.03.2005, 04:05
So also meine Frage hat sich erledigt es funktioniert bestens ... suche aber trotzdem noch eine reine hardware version (Ohne CPU) fals jemand lust hat den code zu verbesser kann er das gerne tun ...

Klaus_0168
09.03.2005, 19:42
Hi sme-bbg,

sorry Nachtschichten bin ich nicht mehr gewöhnt. Ich sehe mir mal den BasCode an, vielleicht kann ich Dir wenigstens da noch helfen.

Klaus

Klaus_0168
09.03.2005, 22:13
Hi Sven,
:-k meine Analysen sind fertig. Unter der Annahme, das Du BasCom AVR verwendest habe ich folgende Anregungen :

1) Es fehlt die $regfile-Direktive. Hattest Du keine Fehlermeldungen ?? Ich hatte gleich vier.

2) Für die (De-)Codierung von Greycode gibt es die Befehle Grey2Bin und Bin2Grey. Das macht die weiteren Berechnungen einfacher.

3) In dem BasFile wird die Position im aktuellen und im letzten Zyklus berechnet. Wenn Du jetzt mit der Differenz weiter rechnen würdest, könnten auch größere Positionsprünge (>1) verarbeitet werden. Das wird besonders bei Greycode mit mehr als 2Bit Breite interressant.

4) Die Kaskadierung von mehr als 4-5 If-Then-Bedingungen sollte vermieden werden, da der Code sonst schnell an Übersicht verliert. Schau Dir mal die Select-Case-Anweisung an. Das macht die ganze Sache flexibler und übersichtlicher.

5) Die spärlichen Kommentare führe ich mal auf die späte (Programmier-)Stunde zurück und habe sie hiermit offiziell nicht erwähnt. :-#

Das war auch schon alles.

Grüße Klaus

PS: ich erwähne einfach mal so, das dies mein 50.tes Posting ist

sme-bbg
09.03.2005, 22:20
Grey2Bin und Bin2Grey .. ich frage mich was bascon noch alles für befehler versteckt.

Klaus_0168
09.03.2005, 22:23
Einfach mal in die Hilfedatei und die Beispieldateien rein schaun.

Dafür sind die Dinger da