18F4550 Pwm

Başlatan meta1453, 02 Mayıs 2015, 21:33:14

meta1453

Merhaba arkadaşlar.

18F4550 de pwm kulanmaya çalışıyorum. CCP2 yi sorunsuz kullanabiliyorum. Fakat CCP1 de sorun çıkıyor. Sanırım bu sorun bunun ECCP olmasıyla alakalı.
Datasheeteden anladığım kadarıyla normal CCP olarak kullanmanın bir yolu var. Fakat ben anlayamadım.Standart CCP olarak kullanmam için Config dan mı bi ayar yapmam gerekiyor? Yardımcı olabilirseniz sevinirim.

Not: Mikrobasic kullanıyorum fakat ölye bir başlık bulamadığım için buraya açıyorum. Hata olduysa affola.

Tagli

Config bitleri üzerinden değil, CCP1CON register'ı üzerinden ayar yapılıyor. Anladığım kadarıyla bu register'ın büyük 2 bitini sıfırlarsan PWM özelliği standart CCP modülündeki gibi çalışıyor.
Gökçe Tağlıoğlu

meta1453

Evet mesajı attıkdan sonra bende fark ettim. Datasheet de aşağıdaki tablo var.



Bu durumda   CCP1CON = %00001100 yaptığımda çalışması gerektiğini düşündüm. Fakat malesef yine çalıştıramadım.

Tagli

Ben microBasic bilmiyorum ama kodu eklersen bilen birisi yardımcı olabilir.
Gökçe Tağlıoğlu

meta1453

Kod şu şekilde.

program pwm_deneme

symbol ain2  = portd.7    'sürücü için
symbol ain1  = portb.0   'sürücü için
symbol stby1 = portb.1   'sürücü için

symbol stby2 = porte.2   'sürücü için
symbol bin1  = porte.1   'sürücü için
symbol bin2  = porte.0   'sürücü için

main:
  trisa=255
  trisb=0
  trisc=%11111000
  trisd=%01111111
  trise=0

  portc=0
  portd=0

  Cmcon = 7
  Adcon1 = 15
  
  Ccp1con = %00001100


  pwm1_init(100000)
  pwm1_start
  Pwm1_Change_Duty(0)
  pwm2_init(100000)
  pwm2_start
  Pwm2_Change_Duty(0)

  stby2 = 1
  stby1 = 1
  ain1  = 1
  ain2  = 0
  bin1  = 1
  bin2  = 0


while(1)

       Pwm1_Change_Duty(200)
       Pwm2_Change_Duty(200)

wend
end.

meta1453

Yardımcı olacak bi arkadaş yok mu?