18f4550 CCP1 VE CCP2 PWM UÇLARINI KULLANMA

Başlatan mustafabat, 20 Şubat 2016, 15:00:26

mustafabat

Merhaba ccs c ile dc motorun yön ve hız kontrolünü yapıyorum. 16f877A da herhangi bir sıkıntı yok . Ama 18f4550 de pwm uçlarından bir tanesini kullanamıyorum. Özel bir tanımlama mı yapmam gerekiyor.

selimkoc

http://www.yukleresim.com/image/czw

bit 0 CCP2MX: CCP2 MUX bit
1 = CCP2 input/output is multiplexed with RC1
0 = CCP2 input/output is multiplexed with RB3

--------------------------------
ikinci pwm ya RC1 veya RB3 olacakmış. Conf. parametrelerinden belirleniyor

dursuncemal

kodunuzu paylasirsaniz daha rahat yardimci oluruz.
:=

mustafabat

#include <18F4550.h>                //mikrodenetleyici modeli seçiliyor
#fuses  HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=20000000)

#define M1_in1 pin_c4               //M1 Sol motor
#define M1_in2 pin_c5               //M1 Sol Motor

#define M2_in1 pin_c6               //M2 Sağ motor
#define M2_in2 pin_c7               //M2 Sağ motor

int HizSol=150,HizSag=150;

void main()
{
   set_tris_c(0x00);       
   output_c(0x00);                    
  
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);
   
   setup_timer_2(T2_DIV_BY_16,255,1);  
   
   set_pwm1_duty(0);                  
   set_pwm2_duty(0);                          
   
   output_high(M1_in1);
   output_low(M1_in2);
   output_high(M2_in1);
   output_low(M2_in2);
   
   delay_ms(500);                   
   
   while(true)
   { 
      set_pwm1_duty(SolHiz);                
      set_pwm2_duty(SagHiz); 
      
   }
}



Kodların devamı var ama temel pwm tanımlamalarını yaptım ama sonuç alamadım ccp1 pinini kullanamıyorum

dursuncemal

kodda bir sikinti yok gibi selim hocanin dikkat cektigii konudada sikinti yok gibi cunku sen pwm1 calismiyor diyorsun.pwm degerlerini elle girip bir bakarmisin tur sorunu var mi diye.//  set   _pwm1_duty(55);               
   
:=

bc_esd

PWM1 hem standart PWM hem de Enhanced PWM olarak çalışıyor. pwm1 ve pwm2 aynı şekilde ayarlanmıyor. anladığım kadarıyla ccs c kullanıyorsunuz. ccs c pek bilmiyorum ama pwm seçeneklerinde standart seçeneği varsa onu seçmelisiniz. ya da direkt registerlara ulaşıp düzenleme yapmalısınız 18f4550 datasheet sayfa 149 da CCP1CON registerı anlatılıyor orada



burada
CCP1M3=1 CCP1M2=1 VE
P1M1=0 P1M0=0 seçilerek single output yapılmalı

aliveli

#6
sol motor çalışmıyor değil mi?
18f4550 'de C4 ve C5 sadece input olarak kullanılabiliyor bu nedenle  motorun çalışmadı.

mustafabat

C4 C5 usb iletişim uçları olduğu için önce usb pasif etmek gerekiyormuş .18f4550 yerine 18f4520 kullandım sorun kalmadı.