Страница 276 из 326

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 7:57 am
Alex
вы хотя бы через строку читайте документацию, 2560 имеет аппаратный watchdog
Очередное сколь безапелляционное, столь и невежественное утверждение. Если бы вы поменьше показывали свой псевдо «профессионализм» и побольше изучали матчасть, то знали бы, что встроенный в 2560 вачдог глючит при некоторых условиях.

Ссылки давать не буду — надеюсь хоть гуглом вы пользоваться умеете?

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 8:30 am
alexsis_76
ОУ к нам пришли специалисты
что встроенный в 2560 вачдог глючит при некоторых условиях
обратился к https://www.promelec.ru/pdf/ATMEGA1280_kr.pdf
Кому как не производителю знать глюки своих чипов, ни какой проблемы не описано,все функционирует штатно,так что глючат при некоторых условиях "программисты ардуино" причем некоторых не спасает даже вачдог.

Вот что пишут "Несчастные программисты ардуино"
Собственно, на этом можно было бы и закончить наше повествование о watchdog… но дело в том, что все это работает только в Arduino Uno, а на Arduino Mega, Mini и Nano все это работает ровно наоборот, т.е. не работает совсем :)
Все остальные счастливы.

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 8:47 am
Alex
Кому как не производителю знать
Уважаемый alexsis_76, мне нет никакого дела до того, как вы выпасаете своих тараканов в голове, но хочу заметить о вашей концептуальной ошибке в работе с информацией.

Конструктивным в данном случае можно назвать подход когда вы проверяете в гугле мои слова и, таки да, убеждаетесь, что проблема есть. Ваш подход «заползти под документацию производителя» конструктивным назвать никак нельзя.

Дело в том, что проблема с вачдогом существует объективно и ей нет совершенно никакого дела до ваших амбиций и ваших тараканов в голове. Надеюсь понятно объяснил. :)

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 8:59 am
alexsis_76
Ваш подход «заползти под документацию производителя» конструктивным назвать никак нельзя
вот это как раз первое что надо сделать при разработке устройства, а ваш подход " если что то не получается прочтите наконец инструкцию" в корне не верен
таки да, убеждаетесь, что проблема есть
изначально проблемы нет(чип работает без ошибок), ее создали ардуинщики и теперь с ней носятся как кошка с мясом, кстати там есть решение, так что вопрос снимается(другой вопрос сможете ли вы повторить это решение).

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 9:03 am
Alex
и теперь с ней носятся как кошка с мясом
М-да... Простых методов и быстрого излечения ждать не приходится... :)

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 9:22 am
alexsis_76
Кстати как там мой термостат, не глючит?

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 9:29 am
Alex
Кстати как там мой термостат, не глючит?
Я посмотрел исходники и на этом успокоился, до компиляции дело не дошло. Дело в том, что мне всегда было легче написать своё, чем разбираться в чужом коде. В этом смысле я понимаю тех, кто жалуется на сложность АМС.

Re: Arduino Mega Server

Добавлено: Чт ноя 01, 2018 7:40 pm
ANARHIST1984
alexsis_76 писал(а): Чт ноя 01, 2018 8:59 am
Ваш подход «заползти под документацию производителя» конструктивным назвать никак нельзя
вот это как раз первое что надо сделать при разработке устройства, а ваш подход " если что то не получается прочтите наконец инструкцию" в корне не верен
таки да, убеждаетесь, что проблема есть
изначально проблемы нет(чип работает без ошибок), ее создали ардуинщики и теперь с ней носятся как кошка с мясом, кстати там есть решение, так что вопрос снимается(другой вопрос сможете ли вы повторить это решение).
Жгете)
Мега 2560 работает нормально и без вачдога.
Проблема можно решить программно и без перезагрузки. Главное код написать правильно.
В начале работы система зависала и при первом включении пускателя и более никак не реагировала. АМС спас ситуацию и после он начал глючить только раз в неделю. После того как я разобрался в проблеме и мы нашли решение, 2560 прекрасно работает.
Открою один секрет, это решение будет работать и на ЕСП и на МЕГЕ. Ошибка программная.
PS Алексей, тебе это известно не хуже меня))

Re: Arduino Mega Server

Добавлено: Пт ноя 02, 2018 2:12 am
EmSerg
Здравствуйте,
читать все 279 страниц форума нет желания (прочёл первую и три последние) и хочу сказать следующее:
программист виноват всегда! и когда невнимательно изучит документацию на процессор,и когда ТЗ изменяют по нескольку раз до завершения проекта, и даже тогда, когда использует кривой компилятор (+ Arduino IDE только в простоте, поэтому и пользуемся).
1) WDT (сторожевая @) прекрасно справляется со своей задачей и никому ещё не вредила, а лишь помогала в надёжности, поэтому я всегда её использую. Ведь всего то и нужно:
#include <avr/wdt.h>
void setup(){
wdt_enable(WDTO_2S); // активировали таймер для сброса, 15 ms, 30 ms, 60 ms, 120 ms, 250 ms, 500 ms, 1s, 2s (ATMEGA328=+ 4s, 8s)
// WDT0_15MS; WDT0_30MS; WDT0_60MS; WDT0_120MS; WDT0_250MS; WDT0_500MS; WDT0_1S; WDT0_2S
}
void loop() {
while(1){
...
wdt_reset(); // говорим собаке "В Багдаде все спокойно", новый отсчет до сброса (как в фильме LOST:).
}}
____________________________________________________________
Установите ядро https://github.com/MCUdude и будет счастье.

2) В AMS (arduino_mega_server.ino) добавьте:
void loop() {
unsigned long time_start = millis();
....
unsigned long time_stop = millis();
time_tmp = time_stop-time_start;
if(time_tmp>2){ Serial.print(F("time_work: ")); Serial.println(time_tmp); }
}
и увидите сколько времени тратит мега на выполнение кода, который НИЧЕГО сверх естественного не делает. Поэтому при грамотном подходе всё это можно запустить на ATmega328 c частотой 8 MHz (на внутреннем резонаторе) и результат будет ОДИНАКОВЫМ! Как? см ниже:
3) Используемые библиотеки в Ардуино либо глючные, либо жирные, (поэтому они и обновляются на новые версии), а мы от них используем лишь менее половины заложенных возможностей, зато компилируются они полностью.
4) SD карта и LAN используют шину SPI, но попробуйте добавить в программу:
SPI.setClockDivider(SPI_CLOCK_DIV2); - результата нет! НИЧЕГО не выйдет, нужно править библиотеки, т.к. в библиотеке SD установлен режим SPI.setClockDivider(SPI_CLOCK_DIV128) - это самый медленный (HARDware) режим! А некоторые устанавливают ещё и медленные карты (write <10Мб/s), что также тормозит обмен. W5100 работает также медленно + греется и иногда (раз в неделю или месяц) "повисает" от направления ветра (поэтому спасает @).
Библиотеки для DS18B20 (Dallas) и DS1307(DS3231) также могут "повесить" мегу из-за случайного сбоя по шине (почти как UART, но у этого хотя бы есть время ожидания), а Wire и OneWire которые используют эти библиотеки - почему то не "вешают" мегу и размер у них меньше. При одинаковой архитектуре (пример blink) скомпилированный код для 2560, 328 и 8 в ардуиновской IDE будет отличаться размером.
5) С W5500 последняя версия AMS не работает (не компилируется), требуются исправления. Устранение мелких косяков типа: номер пина использует 2 байта и согласно документации http://ww1.microchip.com/downloads/en/D ... asheet.pdf стр.256: скорость обмена без ошибок составляет 250К и т.д. тоже помогают в надёжности и экономии ресурсов.
6) Как при обмене AMS данными каждые 0,5 сек она может рисовать на ПК 3D панорамы? Тогда о какой нагрузке CPU AMS идёт речь? О 160-250 мсек выполнения кода относительно какого времени? А может стоит почистить (поправить) код библиотек для удаления из них delay и мега будет показывать использование вместо 0 отрицательную загрузку? А если все страницы и скрипты храним на SD карте, тогда зачем нам много памяти в меге?
________
P.S.: Моя умная квартира реализована на CAN шине (независимость модулей надёжнее системы централизованного управления).
но данный проект AMS в плане "красочности" управления и контроля мне понравился, хотя супруге и детям больше, поэтому нужно ещё подумать, а нужен ли удалённый контроль за пределами своей квартиры для "большого брата" ? Верьте в свои силы - и всё получится! Best regards.

Re: Arduino Mega Server

Добавлено: Пт ноя 02, 2018 7:39 am
nick7zmail
ANARHIST1984 писал(а): Чт ноя 01, 2018 7:40 pm Жгете)
Мега 2560 работает нормально и без вачдога.
Проблема можно решить программно и без перезагрузки. Главное код написать правильно.
В начале работы система зависала и при первом включении пускателя и более никак не реагировала. АМС спас ситуацию и после он начал глючить только раз в неделю. После того как я разобрался в проблеме и мы нашли решение, 2560 прекрасно работает.
Открою один секрет, это решение будет работать и на ЕСП и на МЕГЕ. Ошибка программная.
PS Алексей, тебе это известно не хуже меня))
Ткните что за ошибка то, чтоб другие люди тоже исправить могли? Не?