Не появляется символ “>” в меню - это главная проблема? К чему тогда были эти пустые коды в начале?
У меня такое впечатление, что данные строчки не имеют никакого отношения к тому, из-за чего вы реально завели эту ветку. Похоже вам просто лень объяснять все подробно.
В таком случае мне лень тратить время на какие-то пустяки. Не сочтите за наезд, но в Мск уже второй час ночи и убивать время на вас сейчас я не буду. Зайду завтра, может к тому времени или вы что-то напишете, или кто-то другой вам поможет.
Желаю. успеха.
@b707 Извините, я пока не разобрался с цитатами на форуме, возможно, они мне ещё не доступны… а вопросы свои я своими же словами и описал, как смог, что с 211 по 249 работа энкодера, точнее результаты работы энкодера, написанного кода и его отображения на дисплее меня устраивает(с учетом редкого пропуска считывания шагов(пренебрежем)), с 250 по 283 пропуск шагов не устраивает, т.к. считанные шаги - примерно 30% от фактических, и как написал выше при входе в подменю, т.е. после начала исполнения 250 строки значек “>” отсутствует, как будто без поворота энкодера программа не доходит до 279.
Честно, может,я с другой планеты, конечно, но Вы, ребята, простите, я такого, конечно, нигде не встречал отношения… ну вроде всё своими словами объяснил, вещи, которые меня смущают описал, строки, которые смущают тоже, чтобы искать проще было… но, брат, чтобы просто послать не обязательно быть программистом, точно! @b707 Не все живут по московскому времени. Да и время Ваше на меня убивать я не просил. “Есть возможность - помоги, нет желания - не мешай.”
Из функции setMenu() вызываете ее же? - это называется рекурсия. Это категорически не то, что надо применять в программировании микроконтроллеров, особенно когда не очень понимаешь, зачем оно.
У вас очень быстро кончится стек и программа зависнет.
Хотя, я смекаю… тут рыночная экономика и тоталитарная демократия, а я тут с какими-то вопросами “чайниковскими” лезу…
Кто хочет 300рублей? нужно просто подсказать где ошибка по описанным мной синдромам…
строка 294.
Меню так писать нельзя, переписывайте.
Общий принцип - одно меню главное, другие вложенные. Для каждого - своя процедура. Если из вложенного меню 1 надо перейти в меню2 - СНАЧАЛА выходим наверх в главное, потом идем во второе.
Про рекурсию забудьте. Нет ее на ардуино.
Update.
Если вам не хватает знаний понять, что я указываю вам ГЛАВНУЮ ошибку, то просто поверьте - я вас не вышучиваю и не троллю.
@b707 Теперь конструктивно, спасибо, что смогли так мне ответить. Суть задачи по меню я понял - каждое как отдельная процедура. Буду работать над этим теперь. Рекурсии не использовать.
По поводу нехватки знаний - уже устал писать, что я “чайник”, как здесь принято выражаться. Ну вот хоть убейся, чтож теперь? Не пытаться? Не пробовать? Не ошибаться? Не пытаться найти ошибки? Не пытаться исправить?
С такими нападками, не пропадает желание научиться, нет, но появляется желание покинуть это место, уже спустя сутки… не в обиду это всё, я буду терпеть, нападки… морозы только начинаются, мне нужно отопление автоматизировать, потерплю нападки, изучу, и сделаю.
Не рано ли отопление начинать автоматизировать через 2 недели после получения устройства, которое не является термостатом?
Никакие рекурсии не изменят ситуацию в случае с энкодером и долгим выводом на LCD. И там ещё дилеи понатыканы, как я видел.
Для начала посоветую решить загадку: как получить из энкодера тик, если в это время выполняется другая задача, а процессор одноядерный, с линейным выполнением инструкций.
Напишите простой скетч, где есть энкодер и вывод на дисплей с полным обновлением содержимого. Как победите лаги - перейдете на следующий уровень.
Не нужно по строкам кода вопросы задавать. Его уже посмотрели. Там слишком много непеределываемых глупостей.
Про часовые пояса. Ученик приноравливается к учителю. Или уходит. Спорить с учителем? - не то, что забаним, просто затроллим и сам уйдешь.
Все-таки опиши именно задачу: что регулируешь, по какой логике? Что хочешь устанавливать в меню? Код, судя по его виду, ты натаскал откуда-то, так? Не сам же писал?
Схему соединений тоже бы посмотреть.
Какой у тебя контроллер? Есть ли еще, для обучения?
Собственно нужно начинать двигаться по шагам: неблокирующее чтение далласов, чтение данных RTC не каждый вход а луп, машина состояний для меню. Машина состояний регулятора. Потом слить всё вместе. Хочешь научиться и сделать свой контроллер температуры, где бы то ни было? - Делай, но не сразу ракету, а сперва рогатку, если понимаешь аналогию.
Не цепляйся за имеющийся код, он никуда не годится. Давай понемножку двигаться и время в итоге уйдет не больше, чем запустить кривой код с изолентой, соплями и костылями.
Нет, не так. Изложить нужно во много раз подробнее. Неужели Вы думаете, что пяти строк достаточно для описания задачи, которая в коде занимает 414 строк, не считая восьми (!) подключенных библиотек?
Что значит “задаем”? Как поддерживаем? Как используются реле и насос? Что такое “уставка температуры”? Чем она отличается от “требуемых параметров”?
Еще: в описании я не увидел слова “гистерезис”, а без него ничего работать не будет.
Еще в описании я не увидел слова “дисплей”, хотя где-то в ранних постах о нем упоминалось.
Кроме того, для предметного разговора необходимо привести принципиальную схему и указать, который именно из контроллеров Ардуины Вы используете.
Неверно.
Не “С такими нападками”, а “с такими проектами”.
Этот проект Вам пока не по зубам - выберите проект попроще. Это, разумеется, если Вы действительно хотите научиться. А если Вам нужен именно конкретный проект, значит, говоря о желании обучиться, Вы просто лукавите.
Да, это совершенно два разных класса людей: кто хочет научиться, и кому нужен конкретный проект. Определитесь, к которому Вы относитесь, и действуйте в зависимости от принятого решения.
Попробуйте сравнить поведение ТС вот в этой теме со своим. И результат, который получил он, и Вы. Если ничего не поймёте, то, возможно, Вам действительно лучше переселиться на “западные форумы, где всем помогают”.