Непонятки с флагами

Mcr
Offline
Зарегистрирован: 31.07.2012

Нужно если флаг = 0 то выполнять запрос на передачу данных в порт

Если флаг = 1 то ничего не отправлять и не показывать.

А  у меня почему-то флаг всегда 0 хотя я и присваеваю 1

int in=0;
int out = 0;
int dif=0;
int btn = 2;
int btnOUT = 3;
int buttonState = 0;

byte portB=0;
byte port=0;
int x=5;

int flag=0;

void setup(){
DDRB = 0b00000000;    //All pins in PORTD are inputs
PORTB = 0b00011111; 
pinMode(btn,INPUT);
pinMode(x,OUTPUT);
pinMode(btnOUT, OUTPUT);
pinMode(btnOUT, OUTPUT);
digitalWrite(btnOUT,HIGH);
digitalWrite(btn,HIGH);
digitalWrite(x,HIGH);
Serial.begin(9600);
}

void loop()
{ 
  prirost();
  
   if(digitalRead(btn)==LOW && digitalRead(btnOUT)==LOW){
     flag=1;
     in++;
    out++;
    delay(100);
  } else if(digitalRead(btn)==LOW && digitalRead(btnOUT)==HIGH){
    flag=1;
    in++;
  delay(100);
  }else if (digitalRead(btnOUT)==LOW && digitalRead(btn)==HIGH)
  { 
    flag=1;
    out++;
    delay(100);
  }else
   if(digitalRead(btnOUT)==HIGH && digitalRead(btn)==HIGH)
  {
  flag=0;
  }
  
  

  if(Serial.available() )
  {
    Serial.setTimeout(100);
    port = Serial.parseInt();
    if(port == portB )
    {
        if(flag==0){
            vivod();   
            Serial.print(flag);
        }
      }
  } 
  }

 

Radjah
Offline
Зарегистрирован: 06.08.2014

Какой знакомый скетч.