PWM çıkışını istenen frekansta maksimum 5 volt sürmek"

pic_loader

Üye
Katılım
13 Eki 2009
Mesajlar
42
Puanları
1
Merhaba.

Arkadaşlar PWM sinyalleri üretiminde eğer isiste gördüğüm sonuçlar doğru ise bir türlü çözemediğim bir sorun var.

Şimdi pwm görev çevrim süresi pwm sinyal periyodundan büyük olmamalı diyerek set_duty fonksiyonuna pr2'i aşacak değer girmiyorum.

Ancak bu sefer set_duty'yi pr2'ye eşitlesem de çıkıştan maksimum voltajı alamıyorum.

İsiste ac voltmeter ile sonuçları gözlemlemeye çalışıyorum.

Şimdi örneğin timer2 ayarı

Kod:
setup_timer_2(T2_DIV_BY_4,255,1);

ise, ben kademe kademe i değişkenini artırıp set_duty'ye aktardığımda, i=255 olduğunda ac voltmeterin bana gösterdiği değer 2.50 v.

Halbuki i'yi 1023'e kadar çıkardığımda çıkışın 4.99 olduğunu görüyorum, ancak elimdeki ccs c kitabında pr2 8 bitllik bir değer olmalı 0 255 arasında diyor.

Şimdi bu benim kafamı karıştırıyor.

Ben

Kod:
setup_timer_2(T2_DIV_BY_4,1023,1);

dediğimde de kod derleniyor ve çalışıyor, o zaman herşey normal oluyor yani i değişkeni 1023'e yaklaştıkça volt maksimize oluyor.

Bu kafa karışıklığıma lütfen yardımcı olun :)

Şimdi benim amacım belirlediğim hz'de pr2 set_duty'ye set edildiğinde 5 volt çıkış almak.

Bunun için timer_2'ye periyod olarak 1023 girmem sağlıklı mıdır?

Sağlıklıysa bu kitap neden 0-255 aralığını istemektedir?
 
Selamlar

Timer2 8 Bit lik bir zamanlayıcıdır. yani Timer2 8 bitlik periyod registerine sahiptir. Bu register sayesinde timer 2 nin sayma aralığı ayarlanabilir. Örneğin bu registere 100 değeri verilirse timer2 0-100 arası taşar...

Birde interupt a girdiğinde(eğer timer 2 bayrağı ile soft pwm oluşturuyorsan tabi) yani kesme altında yazdığın kod larda senin pwm frekansını etkiliyecektir....

Eğer Hpwm kullanıyosan, dış kristalmi var yoksa dahili osilatörmü bilmek lazım...
dış kristal ise 22p lik mercimeklerle eksiye bapla derim daha kararlı olur...
Dahili osilatörse eğer onuda calibre etmelisin...

Bildiğim kadarıyla yazdım,umarım yardımcı olabilmişimdir...
 
arkadaşım pwm çıkışından çıkan pals genliği her zaman 5 volttur pwm yüksekte olsa düşükte olsa çıkan pwm genliği değişmez .senin gördüğün voltmetrede ortalama voltaj o şekil oluşuyor.osilaskopta dalga şeklinin voltajı nasıl değişmiyorsa oda değişmez.:d
 
Sayın prof955 verdiğiniz bilgilere teşekkür ediyorum.

Bendeki sorun zaten bu bilgilerle alakalı :)

Timer2'ye atanan periyod değeri maksimize olduğunda çıkışın neden 5 volt olmadığını anlayamıyorum.


arkadaşım pwm çıkışından çıkan pals genliği her zaman 5 volttur pwm yüksekte olsa düşükte olsa çıkan pwm genliği değişmez .senin gördüğün voltmetrede ortalama voltaj o şekil oluşuyor.osilaskopta dalga şeklinin voltajı nasıl değişmiyorsa oda değişmez.:d

Sayın ferittt, benim söylediğimi tam anladığınızı sanmıyorum yada ben derdimi iyi anlatamadım.

Pwm sinyalinin 5 volt olarak çıktığını tabiki biliyorum, benim sorguladığım peryod değerini set_duty'ye atadığımda bu 5 voltun gönderilmesi birim zamanda neden maksimize olmuyor?

Herhalde biliyorsunuz, 5 voltun birim zamanda gönderilme sıklığı 0-5 volt arası bir değer elde etmemizi sağlıyor.

Ben diyorumki timer2'ye tanımladığım periyod değeri diyelim 250, ben bunu set_duty'ye atadığımda çıkışta neden 4.99-5 görmüyorum?

Umarım anlatabildim.
 
evet.yanlış anlamışım.sana kolay gelsin....
 

Forum istatistikleri

Konular
128,974
Mesajlar
922,225
Kullanıcılar
451,171
Son üye
MeryemaMnds
Geri
Üst