Picproje Elektronik Sitesi

DERLEYİCİLER => Microchip XC Serisi => Microchip XC8 => Konuyu başlatan: eeburakdemir - 01 Mart 2016, 14:44:51

Başlık: YAZILIMSAL PWM
Gönderen: eeburakdemir - 01 Mart 2016, 14:44:51
Merhaba arkadaşlar, pic12f675 timer1 kullanarak pwm elde etmek istiyorum. Biraz yardımcı olurmusunuz nasıl bir yol izlemem gerektiği hakkında ? Trimpot ile frekans ayarı yapmak istiyorum , hedefim 30KHz görebilmek. Aşağıda deneme amaçlı kod yazdım ama işe yaramadı . Pwm_Pin GP0 pini.
if (T1IF){
        if (PWM_Pin) {


            TMR1 = adcResult;


            PWM_Pin = 0;


        } else  {
       
       
            TMR1 = 65535 - adcResult;
           
            PWM_Pin = 1;
       
        }


    T1IF = 0;
   
}

Başlık: Ynt: YAZILIMSAL PWM
Gönderen: ferit06 - 01 Mart 2016, 15:25:28


if (T1IF)  demişsiniz.  T1IF ne zaman 1 oluyor ki çalışsın?
Başlık: Ynt: YAZILIMSAL PWM
Gönderen: eeburakdemir - 01 Mart 2016, 15:44:55
Timer1 kuruyorum , sadece kesme fonksıyonunu koydum buraya. tmr1=0
Başlık: Ynt: YAZILIMSAL PWM
Gönderen: cerdemir - 01 Mart 2016, 15:59:40
T1IF sanki pwm enable-disable yapmak için kullanılacak gibi duruyor. Eğer öyleyse değeri interrupt dışında biryerlerden değiştirilmeli. Yine yanlış anlamadıysam timer1  pwm rekansı*pwm çözünürlüğü kadar kesme üretmeli.
Başlık: Ynt: YAZILIMSAL PWM
Gönderen: ferit06 - 01 Mart 2016, 16:00:41
Program parçanızın kesme fonksiyonu olduğunu siz biliyorsunuz. Ben bilmiyordum, programın biliyormu? TIMER1  in ayarları nedir buradan görmemiz imkansız ancak bu program mantığı ile TIMER1 i en yüksek hızda kurmuş olsanız bile (Eğer dışarıdan başka bir osilator ile çalıştırmıyor iseniz) 30 KHz alamazsınız.  20 MHz ile çalışmada PWM için 1 periyod 65536 Fosc/4 puls ederki buradan 20000000/4=5000000 Hz lik bir TIMER1 clock ile çalışma demektir. PWM frelkansı 5.000.000/65536= 76,2 Hz yapar.  Programını tamamını burada vermeden yol gösterilmesini istiyorsun, bakalım başka ilgilenen çıkacak mı?

İlave ; bu program parçası ile frekansı değiştiremezsiniz sadece darbe/boşluk oranı değişir.
Başlık: Ynt: YAZILIMSAL PWM
Gönderen: eeburakdemir - 01 Mart 2016, 16:14:38
İlgilenirken sizden sadece fikir istedim. Tamam olayı çözmüş veya biliyor olabilirsiniz. Ayrıca kodun tamamını da verebilirdim sadece fikir almak için burada kesme kısmını yazdım. Yazdığımız her konuda en iyi olsak birşeyler sormamıza gerek yok diye düşünüyorum. Yine de teşekkür ederim. Sizden zorla bilgi yada fikir isteyen de yok. Bir daha yazmazsınız. Bu forum bilgi paylaşmak tartışmak içindir , bilmişlik veya ukalalık yapma yeri değildir. 
Başlık: Ynt: YAZILIMSAL PWM
Gönderen: ferit06 - 01 Mart 2016, 16:18:36
Bilmişlik , uklallık,   iltifatına teşekkür ederim.