Picproje Elektronik Sitesi

DERLEYİCİLER => Hi-Tech => Konuyu başlatan: Chan86 - 05 Mart 2009, 00:40:00

Başlık: PWM Yardım
Gönderen: Chan86 - 05 Mart 2009, 00:40:00
İyi akşamlar arkadaşlar.PWM yi C ile kullanacağım.Ama nasıl bir kütüphane kullanmalıyım.Komutları nedir?Hatta mümkünse ufak bir örnek program bloüu verebilirmisiniz açıklamalı olarak.
Başlık: PWM Yardım
Gönderen: fractal - 05 Mart 2009, 11:30:07
kütüp hane kullanman gerekmiyor.öncelikle clcok frekansımı elde etmek istiyorsun(high süresi sabit frekans değişir) yoksa (frekans sabit pwm duty cycle yani high süresimi değişecek...


ayarları şöyle

           setup_ccp2(CCP_PWM);
           set_pwm2_duty(xxx);
           
          setup_timer_2(T2_DIV_BY_16,PR2,1);

burda pwm2 çıkışı kullanılmıştır.
Tpwm=(1/fosc)*16*(pr2+1)

pr2 enfazla 255 en az 1 olur.0 kapalıdır.
xxx en fazla 255 olur.255 olursa high süren %100 dür 125 olursa%50 high %50 low olur.pwm yapman için frekans sabitken bu xxx değerini değiştirebilirsin.

clock için ise bu xxx sabit pr2 değerini değiştiirirsin.bölme oranı 1 -4-ve16 dır...
Başlık: PWM Yardım
Gönderen: Chan86 - 05 Mart 2009, 11:41:11
Ben frekansı sabit tutarak duty cylcle değiştirmek istiyorum.Bunun için frekansı nerden gireceğim komut olarak mesela frekansı 4Hz ,görev oranı %80 olan bir sinyal elde etmek istiyorum.Hangi değişkenlere ne gireceğim komutta.Kafam karışıyor bu konuda.Sizide yoruyorum...
Başlık: PWM Yardım
Gönderen: fractal - 05 Mart 2009, 12:28:21
Fosc kaç onu bilmek lazım.kristal frekansın

Tpwm=(1/4M)*4.16.(255+1)
burdan Tpwm=4096.10m^-6=4ms T.f=1 den F=250 hz olur.en az 250hz elde edersin.

en fazla ise 16 yerine 1 pr2 de 1 yaparak oluşur.tabi daha düşük frekans lar için osc frekansını düşürmen lazım.

%80 duty cycle için ise %100  255 ise %80 kaçtır=204 yazman lazım...


setup_ccp2(CCP_PWM);
set_pwm2_duty(204);

setup_timer_2(T2_DIV_BY_16,PR2,1;


yazdığında %80 doluluk oranında 250 hz elde edersin.
Başlık: PWM Yardım
Gönderen: Chan86 - 05 Mart 2009, 12:50:51
Teşekkür ederim 16f877 ile bunu gerçekleiştirebilirim sanırım dimi?
Başlık: PWM Yardım
Gönderen: fractal - 05 Mart 2009, 13:00:20
evet cok rahatlıkla.
Başlık: PWM Yardım
Gönderen: Chan86 - 21 Mart 2009, 20:39:43
setup_ccp2(CCP_PWM);
set_pwm2_duty(204);

setup_timer_2(T2_DIV_BY_16,PR2,1);


Burda aynı bu şekilde yazdığımda derlemede hata veriyor.Aynen bu şekildemi yazacağım acaba?
Başlık: PWM Yardım
Gönderen: Erol YILMAZ - 21 Mart 2009, 21:09:29
yazdığınız kodlar Hi-tech PICC ile derlenmez.

Chan86 size daha önce ADC ile ilgili bir yöntem anlattım.
Şimdi de datasheette PWM ile ilgili olan bölümü açın,
Ve ilgili registerin anlamını bit bit okuyarak
kendi kodunuzu yazın.

Yarın COMPARATOR için kod sorunca cevap yine aynı olacak. :)
Başlık: PWM Yardım
Gönderen: Chan86 - 21 Mart 2009, 21:11:49
Teşekkür ederim.Herşey datasheetten çıkıyor bundan sonra en iyi soru sormadan önce data sheeti güzelce incelemek lazım.Tekrar teşekkür ederim.
Başlık: PWM Yardım
Gönderen: arslan74 - 23 Mart 2009, 01:37:02
aşağıdaki site PIC ile PWM olayını güzelce anlatiyor. Ama dili Almanca.

http://www.sprut.de/electronic/pic/grund/pwm.htm

Selamlar