我习惯于使用高级语言对 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 以上的内存位置。
我可以换掉另一块板,但仍然会遇到类似的怪事。
如何使我的编程适应这种看似不稳定的性能?