STM32 PWM Output State

Başlatan Cemre., 27 Kasım 2017, 17:44:34

Cemre.

Merhaba,

STM32F303VCx denetleyicisi ile bazı çalışmalar yapıyorum.  PWM çıkışlarımın high veya low olması durumunu herhangi bir register'dan anlık olarak okuma ihtiyacım var. O an herhangi bir PWM çıkışının high veya low olması durumuna göre bazı işlemler yaptıracağım. GPIO ODR register'ı PWM çıkışlarına göre değişmiyor.  Acaba bu bilginin tutulduğu bir reg. biti vs var mı? Ref. Man.'de bulamıyorum maalesef...

Teşekkürler.

Cemre.

Sanırım CNT ile CCRx değeri karşılaştırmak daha faydalı olacak yapacağım işte. Ancak yine de bir yöntemi varsa öğrenmek isterim....

apsis

cr1 de URS biti sanki işinize yarayabilir. Benim de aklıma ilk CNT geldi. Çıkışı başka bir pine girerek compare/capture ile kesmeye giderek işlemlerinizi yaptırabilirsiniz diye düşünüyorum.
"Makineye Beyin" MEKATRONİK

Cemre.

#3
Alıntı yapılan: apsis - 27 Kasım 2017, 22:12:15
cr1 de URS biti sanki işinize yarayabilir. Benim de aklıma ilk CNT geldi. Çıkışı başka bir pine girerek compare/capture ile kesmeye giderek işlemlerinizi yaptırabilirsiniz diye düşünüyorum.

Toplamda 6 adet PWM çıkışı var, hiç hoş olmaz açıkçası. TIMx->CR1->URS'nin konumuz ile ilgisini çözemedim, açıklayabilir misiniz?

apsis

#4
Ayrıntılı bakmadım. URS ARR registeri her güncellendiğinde kesme oluşturur diye düşündüm. Ama low veya high algılanmaz. Bunu sonradan fark ettim :)

Alıntı YapThe auto-reload register is preloaded. Writing to or reading from the auto-reload register
accesses the preload register. The content of the preload register are transferred into the
shadow register permanently or at each update event (UEV), depending on the auto-reload
preload enable bit (ARPE) in TIMx_CR1 register. The update event is sent when the counter
reaches the overflow (or underflow when downcounting) and if the UDIS bit equals 0 in the
TIMx_CR1 register. It can also be generated by software. The generation of the update
event is described in detail for each configuration.

Alıntı YapToplamda 6 adet PWM çıkışı var
diğer timerları kullanamaz mısınız?
"Makineye Beyin" MEKATRONİK

Cemre.

Alıntı yapılan: apsis - 27 Kasım 2017, 23:12:43
Ayrıntılı bakmadım. URS ARR registeri her güncellendiğinde kesme oluşturur diye düşündüm. Ama low veya high algılanmaz. Bunu sonradan fark ettim :)
diğer timerları kullanamaz mısınız?

Ne için diğer timerları kullanacağım?

Tim1 advanced timer 6 kanal complementary center aligned pwm çıkartıyor...

apsis

Yine pwm'inizi tim1 den kullanın. Cap/comp 'u kullanmak için başka timer. Ya da normal kesme ile düşen/yükselen kenara göre kesme yapılabilir. Tabi siz daha iyi bilirsiniz.
"Makineye Beyin" MEKATRONİK