Показать сообщение отдельно
Старый 09.09.2016, 22:07   #24
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (2791)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
ждем срабатывания и крутим анимацию на дисплее. Ожидание+многозадачность делается в ардуине либо через millis либо через прерывания.
мммм... ну у меня тоже однозадачность получается. правый датчик сработал - в цикле ждем пока не сработает левый.
как вариант, можно добавить еще прерывание этого цикла по таймауту.
я не очень себе представляю, как из этого цикла вызвать анимацию, которая работала бы параллельно с ожиданием сигнала от второго датчика, но не внутри этого же цикла.

у меня вот так выглядит

Arduino код:
    if (digitalRead(ir_left) == LOW) { // сработал левый датчик
      
time0 millis();
      
lcd.setCursor(10);
      
lcd.print("GO LEFT ");
      
int r 11;
      
char c '<';
      while (
digitalRead(ir_right) == HIGH) { // счет времени пока не сработал правый датчик
        // рисуем бегущую строку
        
lcd.setCursor(r0);
        
lcd.print(c);
        
r--;
        if(
1){
          
11;
          if(
== '<') {
            
' ';
          }
          else {
           
='<';
          }
        }
        
delay(rowDelay); // задержка перед отрисовкой следующего символа
      
}
      
// расчет скорости и вывод на дисплей
    

ПС. Вижу вы знаток, работает ли в Си вот такая конструкция?
Arduino код:
 (== '<') ? ' ' :   ='<'
BNSF9399 вне форума  
Вверх