Dmitrij
Скачал и перекинл в папку библиотек.
Dmitrij
Dmitrij
И всё ровно вот такое выдает
Dmitrij
Менял датчик, Есп, к разным адресам... И всё равно это
Andy
Слишком долго что-то делается. Собачий таймер срабатывает
Dmitrij
да
Dmitrij
я могу сюда скетч скинуть. но как на это посмотрят остольные
Dmitrij
именно!
Dmitrij
готовый
Dmitrij
BME280test
Dmitrij
https://www.youtube.com/watch?v=K-RAWDFEW8M&ab_channel=%D0%98%D0%BD%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%BA%D0%B0
Dmitrij
пример из этого видео
Dmitrij
я снондартные примеры из ардуиноиде заливал . тоже самое
Dmitrij
Dmitrij
Теперь вот такое выдаёт. Это из примера со скана
Dmitrij
Начнем с начала. К каким пинам этот датчик подключается?
SetPf
Здравствуйте. Кто нибудь знает, странные замуты какие нибудь с esp_restart() ?
SetPf
Сталкиваюсь с тем, что при таком рестарте - начинает происходить дичь непонятная после резета. В то время как резет с дебагера и резет с питания\кнопки работают отлично.
SetPf
Непонятная дичь может быть охарактеризована, как отправка из уарта "доресетовых" данных. Что очень очень бредово звучит, но выглядит именно так. Будто с каждым софтварным резетом, очередь уарта начинает слать со сдвигом на несколько байт. Причем с каждым новым софт резетом этот сдвиг увеличивается.
SetPf
Я нашел в 2018 у людей была на вскидку похожая проблема - странное поведение UART после софтварного резета.
SetPf
https://github.com/espressif/esp-idf/issues/5274
SetPf
Короче и в правду баг. А под вижулГДБ все еще не обновили IDF =)
Alexey
Здравствуйте. Кто нибудь знает, странные замуты какие нибудь с esp_restart() ?
В момент ресета работает ли Wi-Fi? Есть ли открытые сокеты?
SetPf
Не. Там все заглушено. Там в чем проблема - он у меня не совсем мусор содержит.
SetPf
А последнюю посылку с резетом слейва =) Которую он отправил, перед собственным рестартом.
SetPf
И слейв ее вполне себе успешно принимает.
Alexey
Ну тогда только отладчиком подключиться и посмотреть что в буфере уарта лежит сразу после ресета
Alexey
Это можно с консоли сделать с openOCD
SetPf
Так не, выше по ссылке скинул же - FIFO Tx уарта криво резетится.
SetPf
во время софтрезета.
Alexey
Софтресету можно добавить коллбек, который будет вызван перед ребутом. В этом коллбеке можно попробовать ручками отчистить буфера.
SetPf
SetPf
Ситуация начинает становится интересной. Надо походу посерьезному раскуривать железо =\
SetPf
И копировать воркараунд из новой версии IDF
SetPf
Ну короч фифо железный. И его заресетить железными флагами для него предназначеными низя ДЬЮ ХАРДВАР БАГ
SetPf
Воркраунды пишут в адреса памяти куда-то
SetPf
Старые*. Они не работают =)
SetPf
Сделали новые, но у них при этом свичнулась версия IDF и добавилось какой то еще жести Там и так в драйвере болото то еще, хрен разберешь.
SetPf
Сейчас смотрю последнюю версию IDF и не понимаю, как они это пофиксили
SetPf
Они в последнем драйвере резетят вот так uart_hal_txfifo_rst(&(uart_context[uart_num].hal));
SetPf
Ну ок. ПРоходим по халу в ЛЛ, а там... static inline void uart_ll_txfifo_rst(uart_dev_t *hw) { if (hw == &UART0) { hw->conf0.txfifo_rst = 1; hw->conf0.txfifo_rst = 0; } }
SetPf
Т.е. они не резетят фифо, если это не UART0
SetPf
Короче подебил в итоге - подсмотрел фикс в 4.2 ИДФ.
SetPf
Нихрена там ничего сделать нельзя было. Фикс заключался в том, что при инициализации системы после софт резета прописывался сброс питания модуля UART и общей юартовской ОЗУ.
SetPf
Tx FIFO - райтонли и запись в него чего угодно вызывает немедленную отправку этого чего-угодно вместе с мусором. Размер FIFO - ридонли. FIFO RST у меня не работает вообще, хотя писали что UART1_FIFO_RST так же вызывает и резет FIFO у UART2. Видимо информация не верная, т.к. они сами этим тоже не воспользовались.
IT
Доброго времени суток господа и дамы! Есть вопрос, имеются esp01s и реле под него 4той ревизии, я залил прошивку на переключение реле через веб интерфейс путем http запроса, релешка переключается но происходит странная вещь, после 4-5 переключения запрос не доходит и ВЭБ интерфейс зависает на прогрузке страницы. Кто нибудь сталкивался с этой проблемой?
IT
скетч нашел на просторах интернета. ПРобовал через Blynk и он отрабатывает нормально, но мне нужна имеено отработка через http запрос
IT
в ввиде http://IP/Relay=on и off соотвественно
IT
могу скинуть сам скетч, может там что то не так?
romanetz
а самому посмотреть?
romanetz
очевидно, что да, не так, раз не работает
IT
я понимаю что скоре всего проблема в скетче. правда не понимаю что именно не так.
IT
может быть нужна какая то определенная прошивка?
romanetz
плата при этом пингуется?
IT
пинг более-менее ровный
romanetz
значит, стек живой, повисает только вебморда
IT
а вэб интерфес на постоянной загрузке
romanetz
дамп трафика сделай вайршарком к ней
IT
хм попробую
IT
кстати монитор порта в случае зависания показывает что было произведено новое подключение (new client) но дальше уже ничего не передается
IT
WiFi connected Server started Use this URL to connect: 192.168.0.123new client GET / HTTP/1.1 Client disonnected new client GET /favicon.ico HTTP/1.1 Client disonnected new client GET /RELAY=OFF HTTP/1.1 RELAY=OFF Client disonnected new client GET /favicon.ico HTTP/1.1 Client disonnected new client GET /RELAY=ON HTTP/1.1 RELAY=ON Client disonnected new client GET /favicon.ico HTTP/1.1 Client disonnected new client и все. зависает
romanetz
значит где-то после accept() проваливается
IT
значит где-то после accept() проваливается
хм, строки содержащей accept нет
romanetz
хм, строки содержащей accept нет
она внутри в либах ) сокеты в lwip - стандартные
IT
скорее всего вы подумаете что я совсем дурак, и вы будете правы. Я не понял о чем вы. но попробую погуглить
IT
Если вдруг вам будет интересен сам скрипт
Nick
У espeasy тоже вроде есть какая то прошивка для esp01. Управляется также http get'ами.
Nick
Проверено, работает.
IT
спасибо за совет!
IT
а вы подобного рода задачу выпоняли ранее? переключение реле с вэбморды?
Nick
а вы подобного рода задачу выпоняли ранее? переключение реле с вэбморды?
Да, я даже управляемый пилот делал на esp12 на 4 розетки.
IT
Да, я даже управляемый пилот делал на esp12 на 4 розетки.
ого впечатляюще=) я впервые сталкиваюсь с этой задачей=)
Nick
Но морду я сам писал, было очень минимально.
IT
у меня оно вот так
Nick
И это было вообще первое что я сделал на esp8266 )