У меня проблемы с моим Arduino. Я пытаюсь создать динамическое имя для моего файла и преобразовать его в массив символов, как я видел в некоторых постах на этом сайте.
Вот как я написал свою функцию:
void writeSD()
{
DateTime dt = RTC.now();
String temp = "DIVE";
temp += dt.day();
temp += dt.month();
temp += dt.year();
temp += ".txt";
Serial.println(temp);
char filename[temp.length()+1];
temp.toCharArray(filename, sizeof(filename));
myFile = SD.open(filename, FILE_WRITE);
if (myFile) {
Serial.print("Writing to txt file...");
myFile.print(dt.day(), DEC);
myFile.print('-');
myFile.print(dt.month(), DEC);
myFile.print('-');
myFile.print(dt.year(), DEC);
myFile.print(' ');
myFile.print(dt.hour(), DEC);
myFile.print(':');
myFile.print(dt.minute(), DEC);
myFile.print(':');
myFile.print(dt.second(), DEC);
myFile.println();
myFile.close();
Serial.println("done.");
} else {
Serial.println("error opening txt file");
}
}
У меня только "error opening txt file"
и я не знаю почему. Имя моего файла правильное и выглядит так, когда я печатаю его на консоли: DIVE652014.TXT
Заранее спасибо !
PS: извините за мой английский, это не мой родной язык
Я понял, почему это не сработало, когда прочитал более точную документацию о плате обсуждения SD от Adafruit:
Библиотека SD-карт не поддерживает «длинные имена файлов», такие как мы
использовал к. Вместо этого он использует формат 8.3 для имен файлов, поэтому сохраняйте файл
имена короткие! Например, IMAGE.JPG в порядке, а datalog.txt в порядке
«Мой файл журнала GPS.text» не является!
Таким образом, у меня было 10 символов, но он принимает только 8 символов в имени файла.
Спасибо за попытку помочь мне! 🙂