Сброс цикла по UART
- Войдите на сайт для отправки комментариев
Пт, 22/08/2014 - 16:58
Доброго дня, столкнуся с очень дрянной проблемой. В общем как только приходит команда от блютус модуля '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');
}
Что ещё можно придумать?
Поместите ловлю и чтение incomingByte внутрь цикла while (glush_sost).