Pull to refresh
4
0
Send message
У нас enc нормально питается от Arduino. Хотя формально ток enc больше допустимого тока на пине 3.3В, регулятор остается холодным. В какой момент происходит зависание? Старые версии драйвера висли при большом потоке пакетов.
Всегда пожалуйста

Понял. На следующей неделе выложу внизу статьи ссылку на репозиторий с кодом avr-etherboot для Arduino Mega, а также укажу в README, как этим пользоваться.

Работа с мегой через UDP очень простая: мы просто получаем и принимаем пакеты средствами библиотеки EtherCard.
Дополнительный трюк: делаем геттер для буфера данных библиотеки и при приеме/отправке читаем/пишем сразу туда, без «лишнего» буфера в коде вне библиотеки.

Если нужно, могу этот код тоже выложить.
На нашей памяти (Ноябрь 2014-Август 2015) avr-etherboot ни разу не глючил.
Он в открытом доступе есть же. Какой конкретно код вас интересует?
Не хотелось жертвовать стабильностью, все-таки, провода, тем более — Ethernet, стабильнее, чем воздух и этот чип.

Мы смотрели, I2C не хватит по длине. Хотели использовать RS-485, но там возни с проводами больше, чем в ethernet. Тут просто вставил и оно заработало, а там нужно разбираться с терминаторами. Также пришлось бы придумывать что-то с выдачей адресов, диагностикой и т.п., а тут уже готовые DHCP и ping.

Думали насчет умного дома, но, опять же, захотелось гибкости. Очень нехорошо бы вышло, если бы сделали все на умном доме X, а потом бы оказалось, что новая фича от заказчика нереализуема на нем.
Спасибо) На самом деле, это только начало, в железном плане там как обычно каша и кучи проводов.

P.S. ISR всегда забивается кодом arduino, см. [arduino]/hardware/arduino/avr/cores/arduino/wiring.c
image

Поставить свой код нельзя:

image
Я имел в виду, что некоторые прерывания уже заняты. Например, millis() использует для работы значение, изменяющееся в timer0_ovf_vect, если не ошибаюсь.

Возможно, можно было и оставить их код целиком, каким-то образом доработав. Но поскольку хотелось минимизировать источники неожиданных моментов (а куча чужого кода является таким источником) и обеспечить максимальную гибкость, было принято решение использовать «мини-ядро».
Такое решение возникло при начальном строительстве или при «рефакторинге»?
У нас пока только электрическая: микроконтроллеры, датчики и т.п. Но да, бывают и другие, например, надпись, которая проявляется при нагреве.

Задания придумывает заказчик вместе со специально нанятыми сценаристами.

Конкретно этот проект писался в vim и Qt creator. Но отладчиком не пользовались, поэтому разницы особой нет.

Information

Rating
Does not participate
Registered
Activity