将内存保留为变量的最后一个值

时间:2016-09-01 08:42:39

标签: lua esp8266 pwm

我正在使用ESP8266,我用Lua语言编程。我创建了一个PWM功能,我在ESP8266中创建了一个服务器。我可以通过这个服务器改变PWM占空比(你可以看到图)。首先我使用默认值设置为PWM,我正在通过服务器更改PWM与我的应用程序。但当我断开ESP8266的电源并再次连接到电源时,占空比恢复到默认值。我想保存通过服务器输入的最后一个PWM值,当我断开ESP8266的电源并再次连接到电源时,占空比将PWM值设置为通过服务器输入的最后一个值。例如,在下面我将默认PWM值设置为' 512',当我相对于我的应用程序更改PWM时,我保存了最后一个值,并且在重新连接过程之后(我在上面通知)我拿了来自存储器的最后一个PWM值和PWM占空比从该值开始。有没有像EEPROM这样的永久性存储器可用于保存最后的PWM值或任何其他人建议的解决方案? (我必须使用Lua语言)

PWM adjusting server

--default PWM value 
pwm.setup(2,1000,512);
pwm.start(2);

1 个答案:

答案 0 :(得分:1)

如果您需要保留数据以便在电源循环中存活,那么您必须通过SPIFFS文件系统将其写入闪存。来自docs的文件写例:

-- open 'init.lua' in 'a+' mode
file.open("init.lua", "a+")
-- write 'foo bar' to the end of the file
file.write('foo bar')
file.close()

如果您需要不那么永久的东西,那么您可以使用rtcmem module来提供对RTC内存的访问。那里的数据至少可以在深度睡眠中存活下来。