Geri git   Programlama ve Elektronik > Elektronik Programlama > PIC C
Kayıt ol Yardım Community Bugünki Mesajlar Arama

PIC C CCS C ve MikroC vb. Hakkında

 
 
Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 14. May 2016, 11:47 PM   #1 (permalink)
Amatör
 
Üyelik tarihi: Jan 2016
Mesajlar: 3
Standart çizgi izleyen kod sorunu

Kod:
#include <16F877A.h>
#device adc=10
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
 
#use delay(clock=20000000)
 
#use fast_io(a)
#use fast_io(c)
unsigned int8 sensorler=0solpwm=0sagpwm=0;
 
void main()
{
   setup_timer_2(T2_DIV_BY_12491); //50.0 us overflow 50.0 us interrupt
   setup_ccp1(CCP_PWM); // ccp1 ucu pwm çıkışı olarak ayarlandı
   setup_ccp2(CCP_PWM); // ccp2 ucu pwm çıkışı olarak ayarlandı
   set_tris_a(0xFF); // a portunu giriş olarak ayarla
   set_tris_c(0xF0);
 
   while(true) //sonsuz döngü
   {
       sensorler = input_a(); // A porundaki tüm pinleri oku
       sensorler = sensorler * 0b00101111; // Sensörden gelen değerleri maskeleyerek al
 
       // birinci ifade beyaz zemin üzeri siyah çizgi için
       // ikinci ifade siyah zemin üzerine beyaz çizgi için
       //Düz git
       if(sensorler==0b00000100 || sensorler==0b00101011)
       {
           solpwm=990;
           sagpwm=990;
       }
       //sola dön vites1
       if(sensorler==0b00000110 || sensorler==0b00101001)
       {
           solpwm=700;
           sagpwm=990;
       }
       //saga dön vites1
       if(sensorler==0b00001100 || sensorler==0b00100011)
       {
           solpwm=990;
           sagpwm=700;
       }
       //sola dön vites2
       if(sensorler==0b00000010 || sensorler==0b00101101)
       {
           solpwm=500;
           sagpwm=990;
       }
       //saga dön vites2
       if(sensorler==0b00001000 || sensorler==0b00100111)
       {
           solpwm=990;
           sagpwm=500;
       }
       //sola dön vites3
       if(sensorler==0b00000011 || sensorler==0b00101100)
       {
           solpwm=300;
           sagpwm=990;
       }
       //saga dön vites3
       if(sensorler==0b00101000 || sensorler==0b00000111)
       {
           solpwm=990;
           sagpwm=300;
       }
       //sola dön vites4
       if(sensorler==0b00100000 || sensorler==0b00001111)
       {
           solpwm=0;
           sagpwm=990;
       }
       //saga dön vites4
       if(sensorler==0b00000001 || sensorler==0b00101110)
       {
           solpwm=990;
           sagpwm=0;
       }
       set_pwm1_duty(solpwm);
       set_pwm2_duty(sagpwm);
    }
}
nusrettepe isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
 


Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı