【发布时间】:2016-08-09 13:54:25
【问题描述】:
似乎在执行网络 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
【问题讨论】:
-
再次向我们展示代码和固件分支/修订版。这通常不是已知的限制,但我们会不断发现和修复原始网络模块中的错误(准备重新编写)。
-
更新了 Q 以包含构建和源代码。