Selam 16f877 ile HPWM kullanarak servo motor sürücem. PicBasic Pro kullanıyorum. şu parametrelerin içinden bitürlü çıkamadım.
şimdi 50hz lazım bana.20ms yani periyot. microişlemci için de 4 mhz clock kullanıcam.
bi formul var da datasheette:
PWM period = [(PR2) + 1]*4*Tosc*(TMR2 prescale value)
ben de dedim ki:
20 ms = [(PR2)+1] * 4 * (250*10^-6) * 1
burdan PR2 = 19999 çıktı pek mantıklı bi değer gibi görünmedi bu bana
şu formülle de gerekli resolution hesaplanıyo
Resolution = [log( Fosc/Fpwm)] / log(2)
burdan hesaplayınca resolution 16biti geçio. 877 ise 10 bitlik pwm üretebiliyo. saat hızını arttırdıkça da PR2 daha da artıyo.
bunun mümkün olması gerekiyo bu işlemciyle aslında ben hatayı nerde yapıyorum?
bilen yok mu yaw alala ilginç :)
ben kendi sorumun cevabini buldum buraya da yaziyim dedim olay prescaler value'da bitiyo. Prescaler value timerin kac cycle'da bir sayicagini belirtiyor. 16f877de timer2 icin 1 - 4 - 16 degerlerini kullanabiliyosunuz. denkleme onu da ekleyince size cok güzel 8 bit bir PR2 degeri cikiveriyor.