似乎在执行网络 I/O 时发生 I/O 引脚中断时,系统会重置——即使中断函数只声明一个局部变量并分配它(本质上是一个无操作例程。)所以我我相当肯定这与在中断函数中花费太多时间无关。(我的实际工作中断函数非常简陋,严格递增和分配,甚至没有任何条件逻辑。)
这是一个已知的约束吗?我的解决方法是在使用网络时断开中断,但这当然会带来数据丢失的可能性。
function fnCbUp(level)
lastTrig = rtctime.get()
gpio.trig(pin, "down", fnCbDown)
end
function fnCbDown(level)
local spin = rtcmem.read32(20)
spin = spin + 1
rtcmem.write32(20, spin)
lastTrig = rtctime.get()
gpio.trig(pin, "up", fnCbUp)
end
gpio.trig(pin, "down", fnCbDown)
gpio.mode(pin, gpio.INT, gpio.FLOAT)
分支:大师
构建于:2016-03-15 10:39
由 SDK 1.4.0 上的 Lua 5.1.4 提供支持
模块:adc,bit,file,gpio,i2c,net,node,pwm,rtcfifo,rtcmem,rtctime,sntp,tmr,uart,wifi