STM32'de Enkoder ve İnterrupt

Başlatan Mucit23, 05 Temmuz 2022, 14:00:49

Mucit23

Selamlar

STM32'de Enkoder'den konum bilgisi alıyorum. Şöyle bir isteğim var. Timer Değeri 0-8192 arasında değişiyor. Timerin Her değişiminde artması veya azalması durumda ADC yi tetikleyip ölçüm almak istiyorum.

Timerin Update eventi dışında sanırım değişim eventi yok. Bunu ancak iki timer ile yaparım diye düşündüm. Enkoder A ve B sinyalleri iki timer'e girer. İkisinde de XOR özelliği aktiftir.

1. Timer Enkoder değerini tutar.
2. Timer ile İstediğim periyotta ADCyi tetiklerim.

Aklıma bir tek bu yöntem geldi. Bunun dışında daha optimize bir yöntem var mıdır?

apsis

Encoder Clock Output ile tetikleme gerçekleştirebilirsin.
"Makineye Beyin" MEKATRONİK

Mucit23

Alıntı yapılan: apsis - 05 Temmuz 2022, 14:15:08Encoder Clock Output ile tetikleme gerçekleştirebilirsin.

Biraz açabilirmisin.

apsis

Encoder'in her bir sayı artışında (senin için 8191) bir çıkış verir. Bu aslında encoder modülünün düşük devirlerde yanlış hız okumasını önlemek için sabit yol değişken zaman mantığını kullanmak için bir timer tetikleyerek iki işaret arasındaki zamanı ölçmen için yerleştirilmiş.

Senin için ise bir timer değil de bir adc tetiklenecek. Encoder timer TRGO çıkışını Encoder Clock Output olarak ayarlarsın. Bunu da adc'ye verirsin. TIMx_CR2->MMS registerin'da bulabilirsin.
"Makineye Beyin" MEKATRONİK

Mucit23

Alıntı yapılan: apsis - 05 Temmuz 2022, 16:06:18Encoder'in her bir sayı artışında (senin için 8191) bir çıkış verir. Bu aslında encoder modülünün düşük devirlerde yanlış hız okumasını önlemek için sabit yol değişken zaman mantığını kullanmak için bir timer tetikleyerek iki işaret arasındaki zamanı ölçmen için yerleştirilmiş.

Senin için ise bir timer değil de bir adc tetiklenecek. Encoder timer TRGO çıkışını Encoder Clock Output olarak ayarlarsın. Bunu da adc'ye verirsin. TIMx_CR2->MMS registerin'da bulabilirsin.

Ama F1 Serisinde böyle bir seçenek yok. Benim hatam belirtmemişim kullandığım MCU'yu. Tim Update, ve Tim OC seçenekleri var

apsis

O zaman ilk söylediğin yöntem mantıklı gibi.
"Makineye Beyin" MEKATRONİK