1

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 との間でアレイの書き込みと読み取りを行うにはどうすればよいですか? これは私にとってまったく新しいものなので、どんな助けも素晴らしいでしょう。

4

1 に答える 1

2

EEPROM.Write関数を使用して値を書き込みます。配列をループして、各値を順番に書き込みます。

254 より大きい整数値を格納する必要がないと仮定すると (その場合、 secretCode の各要素に対して 2 バイトを書き込む必要があります)、これは次のようになります。

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 );
于 2013-03-18T10:29:36.380 に答える