Сброс цикла по UART

O'NeiLL
Offline
Зарегистрирован: 13.08.2014

Доброго дня, столкнуся с очень дрянной проблемой. В общем как только приходит команда от блютус модуля 'G' ардуино запускает вот акой цикл:

void loop() {
  digitalWrite(BT, HIGH);
  if (Serial.available() > 0) {  //если пришли данные
    incomingByte = Serial.read(); // считываем байт
   

    

 
    if(incomingByte == 'G') {
      digitalWrite(LED, HIGH);
      glush_sost = 1;
      while (glush_sost){
        SendPerebor(var, 10, 10); 
        var=var+1; 
        digitalWrite(LED, HIGH);
        delay(10);
        digitalWrite(LED, LOW);
        if (var > 10){ 
           var=0;
        } 
       }
    }
           
    
  }
}

 

Так вот, проблема в том что нужно схожей командой. например 'H'. от блютус модуля остановить этот цикл. Вот так не получатся: 

if(incomingByte == 'H') {
      digitalWrite(LED, LOW);
      glush_sost == 0;
      Serial.println('Z');
      delay(5);
      Serial.println('Z');
    } 

Что ещё можно придумать?

Araris
Offline
Зарегистрирован: 09.11.2012

Поместите ловлю и чтение incomingByte внутрь цикла while (glush_sost).