21 Ekim 2021, 17:57:25

Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d


YAZILIMSAL PWM

Başlatan eeburakdemir, 01 Mart 2016, 17:44:51

eeburakdemir

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;
    
}

Asla pes etme...

ferit06



if (T1IF)  demişsiniz.  T1IF ne zaman 1 oluyor ki çalışsın?

eeburakdemir

01 Mart 2016, 18:44:55 #2 Son düzenlenme: 01 Mart 2016, 18:50:20 eeburakdemir
Timer1 kuruyorum , sadece kesme fonksıyonunu koydum buraya. tmr1=0
Asla pes etme...

cerdemir

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.
-- cemal

ferit06

01 Mart 2016, 19:00:41 #4 Son düzenlenme: 01 Mart 2016, 19:27:51 ferit06
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.

eeburakdemir

İ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. 
Asla pes etme...

ferit06

Bilmişlik , uklallık,   iltifatına teşekkür ederim.

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.