• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено Зациклил esp

gaterkik

New member
Добрый день.
Есть esp-12f. Прошита nodemcu. На ней запущен по неопытности такой код:
Код:
--Set Pin mode
i = 1
in1 = 1
in2 = 2
out1 = 3
out2 = 4

gpio.mode(in1, gpio.INPUT)
gpio.mode(in2, gpio.INPUT)
gpio.mode(out1, gpio.OUTPUT)
gpio.mode(out2, gpio.OUTPUT)

while i > 0 do
in1_state = gpio.read(in1)
print(in1_state)
tmr.delay(1000)
end
В правом окне Esplorer вижу как очень быстро пробегают нули и еденицы - состояние входа один. Затем esp перезагружается и все повторяется.

Два вопроса:
1. Почему не работает tmr.delay(1000)? Состояние входа обновляется чрезмерно часто в консоли.
2. Как вывести esp из этого состояния? Не реагирует на запись правленого скрипта.
 

nikolz

Well-known member
Добрый день.
Есть esp-12f. Прошита nodemcu. На ней запущен по неопытности такой код:
Код:
--Set Pin mode
i = 1
in1 = 1
in2 = 2
out1 = 3
out2 = 4

gpio.mode(in1, gpio.INPUT)
gpio.mode(in2, gpio.INPUT)
gpio.mode(out1, gpio.OUTPUT)
gpio.mode(out2, gpio.OUTPUT)

while i > 0 do
in1_state = gpio.read(in1)
print(in1_state)
tmr.delay(1000)
end
В правом окне Esplorer вижу как очень быстро пробегают нули и еденицы - состояние входа один. Затем esp перезагружается и все повторяется.

Два вопроса:
1. Почему не работает tmr.delay(1000)? Состояние входа обновляется чрезмерно часто в консоли.
2. Как вывести esp из этого состояния? Не реагирует на запись правленого скрипта.
у вас бесконечный цикл i всегда 1
-----------------------
возьмите загрузчик от разработчика ESP и загрузите кусок любой прошивки
либо сотрите флеш
 

gaterkik

New member
у вас бесконечный цикл i всегда 1
-----------------------
возьмите загрузчик от разработчика ESP и загрузите кусок любой прошивки
либо сотрите флеш
Да, я понял что бесконечный цикл. А как без него отслеживать состояние входа и при изменении выполнять действие?

Как сделать задержку если tmr.delay не работает
 

nikolz

Well-known member
Да, я понял что бесконечный цикл. А как без него отслеживать состояние входа и при изменении выполнять действие?

Как сделать задержку если tmr.delay не работает
а как вы определили что не работает он же у вас внутри цикла
 

NeoroN

Member
Думаю лучше было бы так написать :
Код:
--Set Pin mode
i = 1
in1 = 1
in2 = 2
out1 = 3
out2 = 4
gpio.mode(in1, gpio.INPUT)
gpio.mode(in2, gpio.INPUT)
gpio.mode(out1, gpio.OUTPUT)
gpio.mode(out2, gpio.OUTPUT)
tmr.alarm(1000, tmr.ALARM_AUTO, function()
in1_state = gpio.read(in1)
print(in1_state)
end)
А сейчас только затереть программатором ту часть флешки где Файловая система
 

gaterkik

New member
Думаю лучше было бы так написать :
Код:
--Set Pin mode
i = 1
in1 = 1
in2 = 2
out1 = 3
out2 = 4
gpio.mode(in1, gpio.INPUT)
gpio.mode(in2, gpio.INPUT)
gpio.mode(out1, gpio.OUTPUT)
gpio.mode(out2, gpio.OUTPUT)
tmr.alarm(1000, tmr.ALARM_AUTO, function()
in1_state = gpio.read(in1)
print(in1_state)
end)
А сейчас только затереть программатором ту часть флешки где Файловая система
Спасибо. Не знаю как затирать часть флешки. Поэтому прошил другой прошивкой(easy esp), затем снова nodemcu и всё ок.
 

nikolz

Well-known member
Спасибо. Не знаю как затирать часть флешки. Поэтому прошил другой прошивкой(easy esp), затем снова nodemcu и всё ок.
лучше так (нагляднее):
Код:
--Set Pin mode
local i,in1,in2,out1,out2 = 1,1,2,3,4
----------------------------------
 gpio.mode(in1, gpio.INPUT)
gpio.mode(in2, gpio.INPUT)
gpio.mode(out1, gpio.OUTPUT)
gpio.mode(out2, gpio.OUTPUT)
--------------------------------
local function cb_timer()
in1_state = gpio.read(in1)
print(in1_state)
end
----------------------------------------
tmr.alarm(1000, tmr.ALARM_AUTO, cb_timer)
в помощь:
Особенности создания программ в NODEMCU ESP8266 для «интернета вещей»
 
Сверху Снизу