私は高水準言語を使用して PC やスマートフォンをプログラミングすることに慣れていますが、マイクロコントローラーは私にとって新しい領域です。それらはどういうわけか異なっており、より信頼できず、異なる技術を必要としていますか? 以下は、Arduino Mega で実行されている EEPROM に読み書きするためのコードの一部です: (ここでは使用されていないイーサネット シールドが接続されています)
#include <EEPROM.h>
int addr = 0;
int val;
byte value;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = 9;
EEPROM.write(addr, val);
delay(500);
addr = addr + 1;
if (addr == 20) addr = 0;
value = EEPROM.read(addr);
Serial.print(addr);
Serial.print("\t");
Serial.print(value);
Serial.println();
}
出てくるものは次のとおりです。
1 91
2 91
3 9
4 9
5 9
6 9
7 9
8 9
9 9
10 9
11 9
12 202
13 202
14 202
15 202
16 202
17 202
18 202
19 202
0 9
1 89
2 91
3 9
4 9
5 9
6 9
7 9
8 9
9 9
10 9
11 9
12 9
13 9
14 9
15 9
16 9
..... 一般に、アドレス 1 と 2 は常に不安定で、10 を超えるメモリ位置を変更するには 2 回の書き込みが必要です。
別のボードに切り替えても、同様の奇妙なことが起こります。
この一見不安定なパフォーマンスにプログラミングを適応させるにはどうすればよいでしょうか?