Expecting LVALUE Hatası

Başlatan caglar39294, 25 Ocak 2015, 15:27:56

caglar39294

Daha yeni pic öğrenmeye başladım. Yapmak istediğim 4 tane cny70 kullanarak çizgi izleyen robot.B portundan 4 giriş, C portundan da 4 çıkış almak istiyorum fakat if içine girdimi sıkıntı çıkıyor bir türlü çözemedim internette o kadar aradım fakat bulamadım.
Şimdiden herkese çok teşekkürler.
"Expecting LVALUE such as a variable name or *expression" hatası alıyorum ve if içindeki bg1'i seçiyor.

#include "C:\Users\Çağlar\Desktop\main.h"


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);1;
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
    
set_tris_b(0xff);
set_tris_b(0);
set_tris_c(0x00);
   // TODO: USER CODE!!
while(1){
   int bg0=0,bg1=0,bg2=0,bg3=0;
   bg0=input(pin_b4);
   bg1=input(pin_b5);
   bg2=input(pin_b6);
   bg3=input(pin_b7);
   output_high(pin_C7); output_high(pin_C6); //tam ileri
  
   if(bg0=0 & bg1=0 & bg2=0 & bg3=0 || (bg0=1 & bg1=1 & bg2=1 & bg3=1))
      output_low(PIN_C5); output_low(PIN_C4);
   }

}

Gökhan BEKEN

If'de hata yapmışsınız
if(bg0=0 & bg1=0 & bg2=0 & bg3=0 || (bg0=1 & bg1=1 & bg2=1 & bg3=1))

değil
if((bg0==0 & bg1==0 & bg2==0 & bg3==0) || (bg0==1 & bg1==1 & bg2==1 & bg3==1))

şeklinde yazarsanız düzelir

ama bence gerek yok, şöyle yazmanız daha kısa bir yöntem olur:
if((bg0+bg1+bg2+bg3)==0 || (bg0&bg1&bg2&bg3)==1)

daha da kısaltırsak:
if(!(bg0+bg1+bg2+bg3) || (bg0&bg1&bg2&bg3))
Özel mesaj okumuyorum, lütfen göndermeyin.

caglar39294

@meftun çok teşekkür ediyorum o kısım nasıl gözümden kaçıpta öyle yazdıysam. İlk değişeni yazdığım zamanda hata veriyor fakatı 2. yazdığınız kod çalışıyor. Tekrardan çok teşekkür ediyorum boşuna yorduk hem sizi hem forumu.