На какой практике? Мировой? Так вот мировая практика говорит об обратном - в критически важных приложениях никаких МК. Я уже писал про очень простой блок ввода-вывода по последовательному порту от сименса - он на заказной плисине или асике (даже даташит на него не нашёл).
Я тебя уважаю, как специалиста, но иногда реально путаешься в показаниях... Здесь речь про автопилот самолёта? Или МКС? Вроде это хоббийный форум... И у меня тоже несколько лет работает Ардуино на управление освещением без перезагрузок, как только я более-менее правильно написал код и правильно спаял схемотехнику, даже не будучи специалистом. А раньше тоже тоже глючило всё. Но, правда, Я никогда не грешил на МК или компилятор, знал, что все беды исключительно из-за кривизны моих рук и мозгов.
Что такое зависание? Это бесконечно выполняющийся цикл, из которого МК не может выйти. Почему он происходит? Это может быть умышленное действие со стороны программиста. К примеру, в АВР и в архитектуре 8051 невозможно построить иначе работу программы. Это может быть ожидание какого-либо события. Например, мы ждём в цикле реакцию от внешнего устройства. Внешнее устройство не отвечает по какой-либо причине и мы получим зависание. Это может быть сбой программного счётчика из-за внешнего э/м импульса. Последний случай не предсказуем и для избегания его последствий прибегают к использованию независимых таймеров, коим и является вачдог. Для правильного использования вачдога необходимо в разных местах программы взводить флаги и затем в главном цикле их проверять. Если все флаги взведены, то сбрасываем вачдог и сбрасываем флаги. В более ответственных приложениях контролируется ещё и время взвода флагов. Для этого можно использовать самописные таймеры или оконные вачдоги (такие есть в новой серии AVR). Если флаг взведён раньше времени, значит что-то не так и мы уходим на сброс.
всё верно. Программно исправлять косяки схемотехники - так себе занятие. автопилот самолёта вообще не имеет права зависнуть. Поэтому там нет никаких МК и процессоров. бортовой компьютер GPS спутника перезагружается раз в 20 секунд. есть уникумы, которые на дурине делают лифты. И они у них благополучно виснут. Хотя любой современный лифт при обнаружении любой неисправности просто обязан остановиться на ближайшем этаже, открыть двери и больше ни на что не реагировать.
О боже @parovoZZ тебе же сказали, все рабоет, пускай это детский конструктор и что, здесь вопрос в другом, если проект может работать но отказал как устранить ошибку вот и всё, с тобой тут никто спорить не собирается, да и вообще всё это выглядит так что тебе говорят одно а ты говоришь за вообще сторонние вещи. У меня детский проект, он уж совсем простой, а технология ардуино довольно продвинутая, пускай и очень простая, и мне этого за глаза в моём проекте и я просто пришел сюда за подсказками и помощью
А у него внутреннее прерывание есть??? так что бы если счетчик не обнулился он сам на ресет пошел, дабы не ждать посылок с али... Если не сложно пару слов о том как мне эту инфу найти, а лучше ссылку, а то меня поисковики часто не понимают, только через форум инфу и нахожу.
Объясню еще раз как я понимаю то что у меня в проекте произошло, несколько дней подряд на дисплее я видел одни и те же показания с датчика, будто бы они совсем не обновлялись, программно этот вопрос решить легко, я тогда подумал, может она повисла, ардуинка, но пришел к выводам послушать вас что это исключено, но тем не менее почему так вышло я не понял, и да всем спасибо за внимание, вы мне уже очень помогли.
Я вообще подумал что если проблема не в зависании а просто в самом датчике к примеру, то следует просто создать проверку на повтор значения, если число в переменной считывания с датчика будет одним и тем же к примеру 10 раз подряд или будет весьма не существенно меняться то сделать ресет...
У вачдога? Конечно, есть. Всё описано в даташите. Работу вачдога объяснял в какой-то своей теме. книга Евстифеева всё расскажет. к сожалению, без debug mode что там происходит никто сказать не сможет. Этот режим есть у всех, кроме дурины. проблема с датчиком, а зачем делать ресет МК? Это как протирать фары автомобилю, у которого не запускается двигатель. я прекрасно понимаю, о чём говорю. Начинать надо со схемотехники. Если работа с силовой частью, то схемотехника должна быть выверенной. Даже промышленные ПЛК всегда располагают отдельно от силовой части.
Надо термостат с логикой. И если идет сигнал "isnan" с датчика - то выключаешь нагрузку и оповещаешь. Другое дело если контроллер завис - тогда да, но хватит и одного флага. А так да всё верно!
Можно доп.защиту от Дурака сделать. Кроме проверки датчика о чем писал выше. Анализируем принятые значения и если ОНИ ниже минимально возможных или выше то останавливаем работу и сигнализируем. Например аквариум. Минимальное значение допустим +18 Это комнатная температура. Максимальное +30 это чтоб рыб не сварить. И мониторим его в цикле чтоб принятое значение было в этом коридоре. Если пойдет фейк типа 127 (это помоему отрыв питания датчика) то работу останавливаем. Мин и Макс значения могут быть установлены согласно конкретного ТЗ
чтобы не сварить рыб, мощность ТЭНа в принципе должна быть такой, чтобы он не смог разогревать воду выше разумного предела. Разумеется, должен стоять механический термостат. Это как отче наш. вы напридумывали каких-то лишних сущностей, а потом жалуетесь, что всё виснет. Что вам мешает работать непосредственно с данными, которые выдаёт датчик? Датчик выдаёт исключительно цифры. Никаких строковых "isnan" у него нет. Создаёте скользящее среднее, вычисляете дифф. составляющую показаний и с ней работаете. Если показания меняются слишком быстро, подменяете их какими-то дефолтнымы с пометкой, что показания недостоверные. Запускаете временной счётчик для устранения неисправности. После его истечения уходите в аварийный режим (к примеру, периодический подогрев). Это нормальная практика для промки,
да-да я видел - это скорее Паровоззу ответ - он то не видел Спойлер: Паровоззу не читать! (дальше своего носа)
мужики, я не пойму что вы тут обсуждаете без кода? ТС. если хочешь разобраться. что у тебя происходит - сначала покажи свой код. Полностью.
Обсуждаем, что паровоЗЗа опять понесло и он пытается упрекнуть всех самодельщиков в непрофессионализме, в использовании Ардуино в своих поделках, и в целом непригодности AVR и ESP в плане МК для домашней автоматики в плане надежности