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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.