Forum: Mikrocontroller und Digitale Elektronik STM32 F7 Timer/Counter im Encoder Mode


von Thomas K. (Firma: Kessler Automation e.K.) (thkessler)


Lesenswert?

Hallo liebe Mikrocontroller Gemeinde,
ich bin (als SPS-Programmierer) noch recht neu in der Controller 
Branche...
Für einen speziellen Anwendungsfall suche ich nach einer praktischen 
Lösung:
ein Inkremental-Encoder wird in einer Maschine in eine oszillierende
(hin- und her gehende) Bewegung versetzt und die anhängende Mechanik 
erzeugt daraus eine oszillierende Vorschubbewegung (in aller Kürze).
Ich experimentiere schon einige Zeit mit einem STM32F7 Board
(Nucleo F767ZI) und habe auch schon Erfolge, aber ein Wunsch ist mir
noch nicht in Erfüllung gegangen. Ich betreibe den Timer im Encoder 
Mode. Immer wenn der Encoder die Richtung wechselt, hätte ich gern einen 
Timer-Interrupt, und zwar von dem "Direction"-Bit aus dem CR1 - Register 
(TIM8_CR1_DIR) des verwendeten Timers (TIM8, da dieser ein "Advanced 
Timer" ist).
Meine Frage:
kann man (direkt oder indirekt) aus dem 0->1 (pos. Flanke)oder
1->0 (neg. Flanke) Wechsel des DIR-Bits einen IRQ auslösen ?
In dem Dokument RM0410 bin ich nicht fündig geworden, und Online habe 
ich auch nichts gefunden, wie man ein einzelnes Zustandsbit mit einem
IRQ-Event verbindet.
Vielen Dank vorab,
Gruß, Thomas

Anmerkung:
Ich hatte bereits vor einiger Zeit mit dem SAM3 geliebäugelt, weil der 
das offensichtlich kann:
>Atmel-11057C-ATARM-SAM3X-SAM3A-Datasheet<
The direction status can be directly read at anytime in the TC_QISR. The 
polarity of the direction flag status
depends on the configuration written in TC_BMR. INVA, INVB, INVIDX, SWAP 
modify the polarity of DIR flag.
Any change in rotation direction is reported in the TC_QISR
>and can generate an interrupt.<
Vielleicht kann hier jemand helfen...

: Bearbeitet durch User
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.