当Arduino上电时,它有一个存储在闪存中的int数组,例如:
int secretCode[maximumKnocks] = {50, 25, 25, 50, 100, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
当按下程序按钮时,它会等待压力拾取敲击然后该阵列变为,例如:
int secretCode[maximumKnocks] = {25, 50, 25, 50, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
(基于http://grathio.com/assets/secret_knock_detector.pde)
如何在EEPROM中写入和读取数组?这对我来说是全新的,所以任何帮助都会很棒。
答案 0 :(得分:1)
您可以使用EEPROM.Write函数编写值 - 循环遍历数组,依次编写每个值。
假设您不需要存储整数值> 254(在这种情况下,你必须为secretCode中的每个元素写两个字节),这将是:
for ( int i = 0; i < maximumKnocks; ++i )
EEPROM.write ( i, secretCode [ i ] );
编写完成后,您可以使用设置中的读取功能read重新启动它们。如果EEPROM中的值是0xff,这是第一次闪存芯片时的值,请不要将它们复制到密码中。
if ( EEPROM.read ( 0 ) != 0xff )
for (int i = 0; i < maximumKnocks; ++i )
secretCode [ i ] = EEPROM.read ( i );