Selamlar
STM32F103C8 çipimdeki Timer'lar 16 bit çözünürlüğe sahip. Benim 1us veya adım aralığında 32 bit'lik timer'a ihtiyacım var. Şuanda 0-65535 us aralığında 1uS aralıklarla kesme oluşturabiliyorum ama daha geniş bir aralıkta çalışmam gerekiyor. Bu yüzden 32 bit timer ihtiyacım var. Bu ihtiyacı 16 bit timer ile optimize bir şekilde karşılamak istersek ne yapmamız gerekiyor?
Tahmminen timerlarin kaskat baglanabiliyor olmasi lazim.
Link (https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.st.com/resource/en/application_note/an2592-achieving-32bit-timer-resolution-with-software-expansion-for-stm32cube-and-standard-peripheral-library-stmicroelectronics.pdf&ved=2ahUKEwi5geT-s-n3AhW5Q_EDHaWjCV8QFnoECBAQAQ&usg=AOvVaw33rrZya1Av62Cat7gw2_Dl)
Hocam dosyayı Bi inceleyin input capture mode ile ıki timer kullanarak yapılıyor
Timer da repetion counter ne için kullanılıyor?
void TIM2_IRQHandler(void){ // ENCODER ICIN
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
uint16_t current = TIM2->CNT;
if ( current < 0x7FFF ) counterhi += 1; // Roll over in upwards direction
else counterhi -= 1; // Roll over in downwards direction
hocam ben timer update interupt içinde böyle kod yazdım enkoder okudum
üst 16 bit wordu software olarak oluşturdum çünkü orası daha yavaş değişiyor
Alıntı yapılan: Mucit23 - 18 Mayıs 2022, 23:03:26Timer da repetion counter ne için kullanılıyor?
hocam repetition counter'a yazacağınız değer kadar timer interruptını öteler. örneğin 1 us interrupt kurdunuz repetiona 3 yazdınız her 1us de bir kesmeye girmeden repetionu bir azaltır ve 0 olduğunda interrupt tetikler.