현재 Arduino의 EEPROM에 데이터를 저장하는 함수를 작성하려고합니다. 지금까지는 지정된 문자열을 작성한 다음 프로그램이 처음 실행될 때 다시 읽었습니다. 첫 번째 바이트로 문자열의 길이를 저장하려고하고 내 코드는 다음과 같습니다.Arduino의 온보드 EEPROM에 데이터 쓰기
#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
char string[] = "Test";
void setup() {
lcd.begin(16, 2);
for (int i = 1; i <= EEPROM.read(0); i++){ // Here is my error
lcd.write(EEPROM.read(i));
}
delay(5000);
EEPROM_write(string);
}
void loop() {
}
void EEPROM_write(char data[])
{
lcd.clear();
int length = sizeof(data); // I think my problem originates here!
for (int i = 0; i <= length + 2; i++){
if (i == 0){
EEPROM.write(i, length); // Am I storing the length correctly?
lcd.write(length);
}
else{
byte character = data[i - 1];
EEPROM.write(i, character);
lcd.write(character);
}
}
}
내가 겪고있는 문제는 EEPROM의 첫 번째 바이트를 읽을 때 예상되는 길이 값을 얻는 것입니다. 그러나 루프는 세 번만 실행됩니다. 내 코드에서 몇 가지 흥미로운 점을 언급했지만 오류는 어디에 있습니까?
대단히 고맙습니다. 설정 한 수의 값을 저장할 간단한 시스템을 구축하고 있습니다. 이것은 좋은 시작입니다 :) 다시, 고마워요. –