можно расшифровать жаргонное выражение? не все знаю далеко…
Бан в гугле? Хм, второй на этой неделе случай точечных санкций
А может быть зависимость по этой причине?
Этого мало. см #41
96 и 95 строчки если закоментить, то баг пропадает, но тогда и энкодер не работает…
это понятно.
также понятно почему серва дергается, столько напихать в обработчик.
зачем вам вообще прерывания?
в loop нельзя опрашивать энкодер?
без них энкодер оочень плохо работает. цикл длинный слишком. придется пихать опрос энкододера чуть не после каждой функции
Если энкодер не крутить, обработчик не вызывается вообще-то
не имею ни малейшего желания кого то запутать или что то соврать… говорю как есть. поочередно закоментировал все в лупе, эфекта небыло. стал вырезать по чуть чуть сетап - вспомнил что говорили что то про прерывания. а дальше - уже говорил.
Как по мне, где-то путаница, накладка. Может одно и тоже прерывание/пин в двух местах используется…
Не может неактивное прерывание тормозить ИМХО.
case 1:
lcd.clear();
lcd.setCursor(1, 0); lcd.print("t"); lcd.write(1); lcd.setCursor(3, 0); lcd.print(val_temperature); lcd.write(4); lcd.write(1); lcd.setCursor(8, 0); lcd.print(Time.gettime("H:i:s"));
lcd.setCursor(1, 1); lcd.write(2); lcd.setCursor(3, 1); lcd.print(val_humidity);lcd.print("%");lcd.setCursor(12, 1); lcd.write(5); lcd.setCursor(13, 1); lcd.print(counter);w = false;
break;
Попробуйте вернуть 96 и 95стр, а в этом куске закомментируйте
lcd.print(Time.gettime(“H:i:s”));
Если компилятор будет ругаться, в сетапе один раз сделайте
Time.gettime(“H:i:s”);
не сработало… даже когда в 602й строке закоментировал вместе с 232й
Эти строки: стр. 232, 526, 602, 607 (не слабо)))
Если не поможет , плюс к этому
стр.86 Time.begin(); и стр125
не проще взять другую библиотеку для сервы?
servo2 помнится была такая…
Кстати, почему у вас на два прерывания один обработчик?
attachInterrupt(0, encoder, CHANGE);
attachInterrupt(1, encoder, CHANGE);
Может я чего-то не понимаю?
а тут незя delay убрать совсем ? пальцем в небо но мало ли поможет)))
тогда серва порвется…
это же не переменная, а функция…
Именно!
Это об этом ответ?
P.S. Я может и не прав, но int0 int1 - разные прерывания.
если бы PCINT, то да, одна функция на все пины
P.P.S. Сейчас надо будет отойти на несколько часов, поэтому скажу на эту тему что думаю:
- Опрос RTC по-любому будет блокировать, может быть и не сильно заметно.
- DHT если не принять специально меры - будет блокировать
- iarduino библиотеки лучше заменить
- если не включены все сообщения компилятора включить, и посмотреть, есть ли warning -и
При attachInterrupt() назначенная функция просто вызывается из ISR. Так что обработчики INT0/INT1 передадут на время управление назначенной функции. Поочередно.