Tekil Mesaj gösterimi
Alt 14. May 2016, 11:47 PM   #1 (permalink)
nusrettepe
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