Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: ÜC - 30 Ağustos 2017, 16:42:20

Başlık: 18F4431 4.kanal pwm çalışmıyor
Gönderen: ÜC - 30 Ağustos 2017, 16:42:20
   Arkadaşlar selamlar. Bu ayarlar ile 0-5 arası pinlerden pwm çıkışı alabiliyorum.

DTCON = 0
PTCON0 = %00000000
PTCON1 = %10000000
PTPERL = $FF
PTPERH = 0
PWMCON0 = %01011111
PWMCON1 = 1
OVDCOND = %11111111
PDC0L ve PDC0H = Duty değeri

Her ne kadar yabancı dilim olmasada datasheeti çevirerek incelediğimde PWMCON0 registerinin 0,1,2,3.bitler açılmak istenen kanalı ayarlıyor 4,5,6. bitler pwm çıkışı alınmak istenen bitleri ayarlıyor

PWMCON0 register ayarlarının sonunda şöyle bir not yazılmış

Note  1:    Reset condition of the PWMEN bits depends on the PWMPIN Configuration bit.
2:    When PWMEN<2:0> = 101, PWM<5:0> outputs are enabled for PIC18F2331/2431 devices; PWM<7:0>
outputs are enabled for PIC18F4331/4431 devices.
When PWMEN<2:0> = 111, PWM Outputs 1, 3 and 5 are enabled in PIC18F2331/2431 devices; PWM
Outputs 1, 3, 5 and 7 are enabled in PIC18F4331/4431 devices.
3:    Unimplemented in PIC18F2331/2431 devices; maintain these bits clear.


      PWMCON0 registerinin 4,5,6 bitleri 101 olursa tüm bitlerden pwm alırsınız diyor ama yalnızca 0-5 arasından alabiliyorum  6,7. bitlerde pwm ne yaptıysam yok
       Üç gündür bununla uğraşıyorum , tecrubesi olan arkadaşlar yardımcı olursa çok makbule geçecek , şimdiden teşekkür ederim yazan arkadaşlara.
Başlık: Ynt: 18F4431 4.kanal pwm çalışmıyor
Gönderen: apsis - 31 Ağustos 2017, 02:12:13
Çeviriyi yanlış anlamışsın sen. 0,1,2 ve 3. bitler kanal felan ayarlamıyor. Bu bitler kanallar tamamlayıcılı mı (  biri aktifken diğeri pasif gibi düşünebilirsin) yoksa bağımsız mı çalışacağını seçiyorsun( pwm0 high ise pwm1 de high olur). Bağımsız çalışıtırıken farklı duty değerleri veremiyorsun.
Örneğin pwm0 255 ise pwm1 de 255 olmak zorunda.

Hemen bir deneme yaptım ve gayet düzgün çalışıyor.

Kodlarının tümünü paylaşırsan yardımcı olabilirim.
Başlık: Ynt: 18F4431 4.kanal pwm çalışmıyor
Gönderen: ÜC - 31 Ağustos 2017, 13:12:11
  Cevap için çok teşekkürler Apsis hocam benim pek umudum yoktu cevap geleceğinden açıkcası , umut oldunuz.

  Pwm için kullandığım kodlar bunlar

TRISB=%00000000

DTCON = 0
PTCON0 = %00000000
PTCON1 = %10000000   
PTPERL = $FF   
PTPERH = 0
PWMCON0 = %01011111                           
PWMCON1 = 1         
OVDCOND = %11111111     

i var word

i=1000
                                 
for i=0 to 1023

PDC0L = i.LowByte           
PDC0H = i.HighByte
PDC1L = i.LowByte           
PDC1H = i.HighByte
PDC2L = i.LowByte           
PDC2H = i.HighByte

PDC3L = i.LowByte           
PDC3H = i.HighByte
pause 5

next


0,1,2. kanallardan yani 0,1,2,3,4,5. bitlerden pwm çıkışı var iken 6  ve 7 de yok. Bu kodlarda bir yanlışlık vardır lllaki ama denemediğim alternatif kalmadı.

Başlık: Ynt: 18F4431 4.kanal pwm çalışmıyor
Gönderen: apsis - 31 Ağustos 2017, 19:02:52
6 ve 7. bitleri rd6 ve rd7 den alman lazım. Port ayarı olarak sadece B portunu ayarlamışsın. D portunu ayarla ve RD6 ve RD7 den pwm işaretini alman lazım.
Söylemeyi unutmuşum. Ben C'de denedim sen basic'de yazmışsın.
Kodlarının tümü buysa sigorta ayarların nerede?
Başlık: Ynt: 18F4431 4.kanal pwm çalışmıyor
Gönderen: ÜC - 31 Ağustos 2017, 20:24:28
  Piyade bölüğü baştan say  1,2,3.... en son 2 asker topçu bölüğünden seslensin 6,7 .

    Aslında hangi portun hangi bitleri pwm imiş diye baktım başta , PORTB 0,1,2,3 özelliklerinde pwm görünce diğerleride portb den devam ediyordur diye kontrolü bırakmıştım tabii büyük hata. Şimdi denedim PORTD 6 ve 7 de pwm görünce çocuk gibi sevindim vallahi. Altı aydır uğraşıpta tam sonunda kalakaldınmı verdiğin emeğemi zamanamı yanasın bilemiyor insan.
   
    Apsis hocam ne kadar teşekkür etsem azdır çok sağolun , unutmayacağım bu yardımınızı hiçbir zaman.
Başlık: Ynt: 18F4431 4.kanal pwm çalışmıyor
Gönderen: apsis - 01 Eylül 2017, 00:00:05
Ne demek hocam hepimiz sorunlarımızı çözmek için varız. Faydalı olduysa ne mutlu bana.
İyi çalışmalar..