16f84A İle PWM

Başlatan debi, 13 Ocak 2008, 13:51:01

debi

Arkadaşlar elimdeki 16f84a işlemci ile PWM uygulamak istiyorum...
Sorularım ise ;

-- 4 MHz ve 20 MHz osilatör devreleri ile hangi frekans aralığında PWM üretebilirim??
--PWM için uyguladığım teknik "çıkışı 1 yap;x ms bekle;çıkışı 0 yap;a-x ms bekle; // a periyod" doğru mu?
--ISIS'te ms veya us bekleme ile yaptığım devreler 1-2 Khz lik frekanslarda sanki 5-6 Hz'lik gibi çalışıyor??

Maxim

Alıntı yapılan: "debi"Arkadaşlar elimdeki 16f84a işlemci ile PWM uygulamak istiyorum...
Sorularım ise ;

-- 4 MHz ve 20 MHz osilatör devreleri ile hangi frekans aralığında PWM üretebilirim??
--PWM için uyguladığım teknik "çıkışı 1 yap;x ms bekle;çıkışı 0 yap;a-x ms bekle; // a periyod" doğru mu?
--ISIS'te ms veya us bekleme ile yaptığım devreler 1-2 Khz lik frekanslarda sanki 5-6 Hz'lik gibi çalışıyor??

16F84a da hardware pwm modülü olmadığından mecburen dediğiniz yöntemle bir pwm üretmek gerekiyor ,belki daha hassas olması için 8bitlik timer0 modülünden de faydalanabilinir diye düşünüyorum.

ama örnek, 16F628A işlemcisinde bu modül entegre edilmiştir ,
4 mhz de en az 245 hz en fazla 500khz
20 mhz de en az 1.2khz en fazla 2.5mhz
pwm üretmek mümkündür .

isiste herşeyi yapmak mümkün olamayabiliyor ,her zaman güvenmeyin.

debi

Alıntı yapılan: "maxiboost"
Alıntı yapılan: "debi"Arkadaşlar elimdeki 16f84a işlemci ile PWM uygulamak istiyorum...
Sorularım ise ;

-- 4 MHz ve 20 MHz osilatör devreleri ile hangi frekans aralığında PWM üretebilirim??
--PWM için uyguladığım teknik "çıkışı 1 yap;x ms bekle;çıkışı 0 yap;a-x ms bekle; // a periyod" doğru mu?
--ISIS'te ms veya us bekleme ile yaptığım devreler 1-2 Khz lik frekanslarda sanki 5-6 Hz'lik gibi çalışıyor??

16F84a da hardware pwm modülü olmadığından mecburen dediğiniz yöntemle bir pwm üretmek gerekiyor ,belki daha hassas olması için 8bitlik timer0 modülünden de faydalanabilinir diye düşünüyorum.

ama örnek, 16F628A işlemcisinde bu modül entegre edilmiştir ,
4 mhz de en az 245 hz en fazla 500khz
20 mhz de en az 1.2khz en fazla 2.5mhz
pwm üretmek mümkündür .

isiste herşeyi yapmak mümkün olamayabiliyor ,her zaman güvenmeyin.

Teşekkür ederim..
Peki;;;
Manuel olarak PWM elde ettim;
{
PWM
}
Sürekli döngü içinde; Fakat Duty Cycle'ı duruma göre değiştirmem lazım.. Yazacağım her komuta satır ilavesine karşılık benim ürettiğim PWM frekansı da değişiyor normal olarak.. Bunu engellemek için nasıl bir kod düzeni uygulamalıyım?

Örn;
çıkışı 1 yap;
x ms bekle;
çıkışı 0 yap;
a-x ms bekle;
eğer b=100 ise
şöyle yap;
eğer c=200 ise
şöyle yap;
Zaten PWM frekansım us civarında... (a-x)us-ms bekleme süresine 4 satır kod çevrim süresi de ilave oldu??

debi

Alıntı yapılan: "maxiboost"
Alıntı yapılan: "debi"Arkadaşlar elimdeki 16f84a işlemci ile PWM uygulamak istiyorum...
Sorularım ise ;

-- 4 MHz ve 20 MHz osilatör devreleri ile hangi frekans aralığında PWM üretebilirim??
--PWM için uyguladığım teknik "çıkışı 1 yap;x ms bekle;çıkışı 0 yap;a-x ms bekle; // a periyod" doğru mu?
--ISIS'te ms veya us bekleme ile yaptığım devreler 1-2 Khz lik frekanslarda sanki 5-6 Hz'lik gibi çalışıyor??

16F84a da hardware pwm modülü olmadığından mecburen dediğiniz yöntemle bir pwm üretmek gerekiyor ,belki daha hassas olması için 8bitlik timer0 modülünden de faydalanabilinir diye düşünüyorum.

ama örnek, 16F628A işlemcisinde bu modül entegre edilmiştir ,
4 mhz de en az 245 hz en fazla 500khz
20 mhz de en az 1.2khz en fazla 2.5mhz
pwm üretmek mümkündür .

isiste herşeyi yapmak mümkün olamayabiliyor ,her zaman güvenmeyin.

Teşekkür ederim..
Peki;;;
Manuel olarak PWM elde ettim;
{
PWM
}
Sürekli döngü içinde; Fakat Duty Cycle'ı duruma göre değiştirmem lazım.. Yazacağım her komuta satır ilavesine karşılık benim ürettiğim PWM frekansı da değişiyor normal olarak.. Bunu engellemek için nasıl bir kod düzeni uygulamalıyım?

Örn;
çıkışı 1 yap;
x ms bekle;
çıkışı 0 yap;
a-x ms bekle;
eğer b=100 ise
şöyle yap;
eğer c=200 ise
şöyle yap;
Zaten PWM frekansım us civarında... (a-x)us-ms bekleme süresine 4 satır kod çevrim süresi de ilave oldu??

Erol YILMAZ

@debi

Problemsiz bir şekilde donanımsal PWM sinyali üretebilirsiniz.
Özellikle Yazılımla mı PWM sinyali üretmek istiyorsunuz ?

Bu iş için yapılmış donanımsal PWM özellikli MCU'lar var.
PIC16F628A, ADC özellikleri ile beraber PIC16F819 gibi.

Fiyatları birbirine çok yakın.

ferdem

Alıntı yapılan: "debi"
Zaten PWM frekansım us civarında... (a-x)us-ms bekleme süresine 4 satır kod çevrim süresi de ilave oldu??

Yapacak bir şey yok, yazılım kullanarak bu kadar olur :) Uygulamanızı ne kadar etkileyeceğini deneyip görün. Sürekli değişmesi gerekiyor mu bu değerlerin?

Bu yazılımla PWM işi çok beter bir iş :) başka bir iş yapmanıza olanak tanımıyor. Arkadaşların dediği gibi PWM modülü olan bir PIC kullanın, PWM arka planda düzgün çalışırken siz de "main"de kendi işlerinizi yaparsınız. Kolay gelsin

debi

Alıntı yapılan: "ferdem"
Alıntı yapılan: "debi"
Zaten PWM frekansım us civarında... (a-x)us-ms bekleme süresine 4 satır kod çevrim süresi de ilave oldu??

Yapacak bir şey yok, yazılım kullanarak bu kadar olur :) Uygulamanızı ne kadar etkileyeceğini deneyip görün. Sürekli değişmesi gerekiyor mu bu değerlerin?

Bu yazılımla PWM işi çok beter bir iş :) başka bir iş yapmanıza olanak tanımıyor. Arkadaşların dediği gibi PWM modülü olan bir PIC kullanın, PWM arka planda düzgün çalışırken siz de "main"de kendi işlerinizi yaparsınız. Kolay gelsin

Arkadaşlar Pic programlamaya yeni başladım.. (öncesi atmel..) Yapacağım şeylerde bazen 3-4 PWM çıkışı vermem lazım.. Uygulamalarım da genel olarak volatjı PWM ile değiştirmek.. Azaltmak, çoğaltmak veya sürekli değişim... PWM çıkışı olan bir Pic olursa, 3-4 çıkış almak için yine kodla yapmam lazım.. Eninde sonunda komutla yapmam gerekecek...
Tekrardan cevap yazan arkadaşlara teşekkürler..