Hallo zusammen, ich habe eine Frage bezüglich des Encoder-Interfaces beim stm32f4. Ich möchte mit einem Rotary-Encoder eine Variable hoch bzw. runterzählen, also z.B. wenn man nach rechts dreht => inkrementieren, wenn man nach links dreht => dekrementieren. Ist es möglich das Encoder Interface so einzustellen? Ich habs bis nur soweit gebracht dass er, egal welche Richtung immer hochzählt. Danke schonmal
erst suchen, dann fragen- das ist hier glaube ich die Konvention. gehe auf microcontroller.net un suche nach Encoder. Da wird dir geholfen.
stm schrieb: > Ist es möglich das Encoder Interface so einzustellen? Ja. In Hardware: http://www.micromouseonline.com/2013/02/16/quadrature-encoders-with-the-stm32f4/ Und dann gibt es noch die "PinChange-Interrupt-Fraktion", die hierüber "Hurra" rufen wird: http://stm32f4-discovery.com/2014/08/library-26-rotary-encoder-stm32f4/ Alle Anderen nehmen die übliche Peter-Danegger Geschichte, die z.B. in einem 1ms Systic laufen kann...
Lothar M. schrieb: > Alle Anderen nehmen die übliche Peter-Danegger Geschichte, die z.B. in > einem 1ms Systic laufen kann... Er nun wieder! Auf die Schnelle für STM32F411 mit dem Hardware-Decoder. void init_t2(void) { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; // GPIOA freigeben GPIOA->MODER |= 0x0a; // AF1 PA0 und PA1 GPIOA->PUPDR |= 0x05; // pullup PA0 und PA1 GPIOA->AFR[0] |= 0x11; // AF PA0 und PA1 TIM2_CH1/TIM2_CH2 RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // Timer2 freigeben TIM2->SMCR |= 0x03; // Encode mode 3 TIM2->CCMR1 |= 0x05; // CH1 + CH2 -> Encoder TIM2->CR1 |= TIM_CR1_CEN; // T2 starten } Der Zählerstand findet sich in TIM2->CNT.
msx schrieb: > Auf die Schnelle für STM32F411 mit dem Hardware-Decoder. Ich meinte, den als Allererstes vorgeschlagen zu haben... Die Hardware-Lösung braucht aber eben einen Timer/Zähler. Und das kann schnell mal eine wertvolle Ressource sein.
Lothar M. schrieb: > Die Hardware-Lösung braucht aber eben einen Timer/Zähler. Und das kann > schnell mal eine wertvolle Ressource sein. Und, schon mal einen STM32F4xx gesehen? Der hat mehr Timer als Du Finger an den Händen ;-)
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.