Ожидание Serial

Anton
Offline
Зарегистрирован: 24.05.2011

Ребят подскажите как сделать чтобы ардуинка после нажатия кнопки устанавливала флаг в "1". Соответственно изза того что флаг равен 1  начала ждать данные на порту SErial, но определенное время (например 100 мс) при этом продолжая проходить цикл LOOP() и если данные за это время пришли то делаем какое то действие если не пришли то делаем другое действие и выставляем опять влаг в "0"

 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

millis() нужно использовать. Пример моргание светодиодом без задержек) Тут есть тема про "светафор" - там есть разные варианты про одновременные выполнения разных функций без задержек 

Anton
Offline
Зарегистрирован: 24.05.2011

Adessit пишет:

millis() нужно использовать. Пример моргание светодиодом без задержек) Тут есть тема про "светафор" - там есть разные варианты про одновременные выполнения разных функций без задержек 

Это я знаю как делать. Я не знаю как заставить ждать с сериал порта ровно 100 мс

Если сделать while(Serial.available()==0); то он не уйдет никуда пока че нить в порту не появится.  а нужно чтобы ушел по истечении 10 сек.

Так пойдет

unsigned long currentMillis = millis();

while((Serial.available()==0)||(currentMillis==LastMills+100));

long LastMills=millis();