Forum: Mikrocontroller und Digitale Elektronik Dregeber mit STM-Board auslesen, bitte um Einstiegshilfe


von Rick M. (rickm)


Lesenswert?

Hallo,

vorne weg: Ich bin absoluter Anfänger bzgl. Microcontrollern und beiße 
mich da nun zum ersten Mal für ein Hochschulprojekt rein.
Bisher hatte ich mit einem Arduino Nano gearbeitet, mit dem ich mich 
auch schon gut anfreunden konnte, aber leider kommt die geforderte 
Aufgabe an dessen Grenzen. Nun habe ich ein STM 32F407VG zur Verfügung 
gestellt bekommen.

Die Aufgabe scheint erst mal einfach: Die Signale eines inkrementalen 
Drehgebers müssen bei einer max. Geschwindigkeit von 30 Umdrehungen pro 
Sekunde erfasst und hochgezählt werden. Nach einem bestimmten Wert muss 
ein TTL Signal als Trigger für eine Highspeedkamera ausgegeben werden, 
während die Zählung weiterläuft. Die 2 Signale des Drehgebers sind zwei 
um 90° phasenverschobene Rechteckimpulse, deren abwechselnder 
LOW/High-Wechsel ein Greycode darstellt und man ausserdem aus der 
Reihenfolge der Signalflanken die Drehrichtung bestimmen kann. Pro 
Umdrehung geben diese Signale zusammen 4000 Flanken aus, die vom 
Programm zu zählen sind.

Ich kämpfe mich gerade durch die Konfiguration mit CubeMX und möchte den 
Rest mit der STM 32 Workbench erledigen. Ich habe keine Ahnung, welche 
Einstellungen ich hier beachten muss, geschweige denn wie ich die Cklock 
Configuration machen soll ^^
Ich habe bereits herausgefunden, dass die Timer des Boards unter 
"combined channels" den Modus "Encoder" bieten, was wohl genau für die 2 
Quadratur- Signale, die der Drehber ausgibt, geeignet ist.

Nur habe ich überhaupt keine Ahnung, wie ich das was mir das Board zur 
Verfügung stellt, nutzen soll. Ich muss wohl "einfach ein 
Timer-Interrupt" setzen, aber ich benötige grundlegende 
Einstiegskenntnisse für die Handhabung. Auch bei der Programmierung in 
der Workbench weiß ich bisher nur, dass ich irgendwo in einer 
Main-Datei, die mir das CubeMx erstellt, meinen Code an einer Stelle 
einfügen kann... Mit den Befehlen wie GIO_HAL etc. kann ich auch noch 
nichts anfangen.
Ich finde im Netz leider keine Übersciht über die wichtigsten Befehle 
bei der Verarbeitung von digitalen Eingängen/Ausgängen, das war beim 
Arduino alles viel einfacher^^ Ich hoffe es kann mir jemand in 
irgendeiner Form weiterhelfen

: Bearbeitet durch User
von Harry L. (mysth)


Lesenswert?

Rick M. schrieb:
> Ich finde im Netz leider keine Übersciht über die wichtigsten Befehle
> bei der Verarbeitung von digitalen Eingängen/Ausgängen,

Dann hast du wohl nicht richtig gesucht.
https://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf

Und für den Einstieg sind auch die Videos von ST recht nützlich:
https://www.youtube.com/user/STonlineMedia/playlists

von Rotho (Gast)


Lesenswert?

Rick M. schrieb:
> Hallo,

Hallo

> Die Aufgabe scheint erst mal einfach: Die Signale eines inkrementalen
> Drehgebers müssen bei einer max. Geschwindigkeit von 30 Umdrehungen pro
> Sekunde erfasst und hochgezählt werden. Nach einem bestimmten Wert muss
> ein TTL Signal als Trigger für eine Highspeedkamera ausgegeben werden,
> während die Zählung weiterläuft. Die 2 Signale des Drehgebers sind zwei
> um 90° phasenverschobene Rechteckimpulse, deren abwechselnder
> LOW/High-Wechsel ein Greycode darstellt und man ausserdem aus der
> Reihenfolge der Signalflanken die Drehrichtung bestimmen kann. Pro
> Umdrehung geben diese Signale zusammen 4000 Flanken aus, die vom
> Programm zu zählen sind.
> Ich kämpfe mich gerade durch die Konfiguration mit CubeMX und möchte den
> Rest mit der STM 32 Workbench erledigen. Ich habe keine Ahnung, welche
> Einstellungen ich hier beachten muss, geschweige denn wie ich die Cklock
> Configuration machen soll ^^

> Nur habe ich überhaupt keine Ahnung, wie ich das was mir das Board zur
> Verfügung stellt, nutzen soll. Ich muss wohl "einfach ein
> Timer-Interrupt" setzen, aber ich benötige grundlegende
> Einstiegskenntnisse für die Handhabung. Auch bei der Programmierung in
> der Workbench weiß ich bisher nur, dass ich irgendwo in einer
> Main-Datei, die mir das CubeMx erstellt, meinen Code an einer Stelle
> einfügen kann... Mit den Befehlen wie GIO_HAL etc. kann ich auch noch
> nichts anfangen.


Sei unbesorgt, wir programmieren dir das. Ich habe schon angefangen und 
andere bestimmt auch. Wann soll es denn fertig sein?

von Rick M. (rickm)


Lesenswert?

ich brauche einfach eine Einstiegshilfe und will das ja selbst lernen. 
Das ist gerade so ein riesiger Berg an Informationen und ich blicke 
einfach noch nicht durch und weiß nicht, wie ich anfangen soll...

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.