PWM FREKANSI DEĞİŞTİRME (timer)

Başlatan tuzluerik, 27 Şubat 2018, 18:04:12

tuzluerik

PIC16F877A İle 50hz sinüs dalgası üretiyorum burda sorun yok, frekansı değiştirdikçe genlikde değişiyor aynı oranda. Bunu nasıl düzeltebilirim?

setup_timer_2(T2_DIV_BY_4,160,2)   // 160 yazan değeri değitirerek frekansı değiştiriyorum.

Z80

#1
Timer2 frekansını değiştirdiğn zaman duty oranını da değiştirmiş oluyorsun.
Formül şu : DUTY = PWM_DEĞERİ / ((PR2+1) x 4)
PR2=160 olduğunda PWM değeri 0-644 arasındadır. Örneğin PR2'yi 80 yaparsan frekans iki katına çıkar ama yoğunluk (resolution) düşer, PWM değeri 0-324 arasında olur.

Datasheet'inde PWM peryodu şu şekilde hesaplandğını göreceksin.
PWM Period = ((PR2) + 1) x 4 x TOSC x (TMR2 Prescale Value))
(TOSC = 1/FOSC) 

Anladığım kadarıyla SPWM ile sinüs üretiyorsun ve bunun frekansını değiştirmek istiyorsun. PWM frekansını değiştirerek bunu yapamazsın.

Tablodan okuma zamanını değiştirerek sinüs frekansını değiştirmelisin.   

tuzluerik

TEŞEKKÜR EDERİM DÜZELTTİM SORUNU SAYENİZDE,

StunnerB

Nasıl yaptığınızı bana da söyler misiniz bitirme projemle ugraşıyorum da 50 hz sinüs kodunu oluşturamadım yardımcı olur musunuz lütfen