SD Card не записывает результат

akimov_aleks
Offline
Зарегистрирован: 04.04.2013

Помогите понять что не так с кодом. 

Один раз может записать потом error opening test.txt

 

void loop()
{
..... 
.....

if (aleks == false)
  {
    myFile = SD.open("test.txt", FILE_WRITE);
    
    if (myFile) {
      Serial.println("OK");
      myFile.print("OK");
      myFile.println(rtc.getTimeStr() );
      myFile.close();
    }
    else {
    Serial.println("error opening test.txt");
  } 

::::::::::
delay(1000);
}

 

maksim
Offline
Зарегистрирован: 12.02.2012

Попробуйте писать в файл без проверки

myFile = SD.open("test.txt", FILE_WRITE);
Serial.println("OK");
myFile.print("OK");
myFile.println(rtc.getTimeStr());
myFile.close();

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну какие нафиг проверки. Файло нужно ЗАКРЫВАТЬ !!!! Или открывать один раз, а в коде один раз открыл, записал - все ок, а второе открытие , ранее открытого файла приводит к ошибкам.

maksim
Offline
Зарегистрирован: 12.02.2012

brokly пишет:

Ну какие нафиг проверки. Файло нужно ЗАКРЫВАТЬ !!!! Или открывать один раз, а в коде один раз открыл, записал - все ок, а второе открытие , ранее открытого файла приводит к ошибкам.

Строка 14

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Извините, совсем слепой стал - проглядел. Ну да попробывать закрывать файл в любом случае, без проверки. Хотя, тогда странно это все....

maksim
Offline
Зарегистрирован: 12.02.2012

Возможно, что при создании файла и при открытии файла для чтения объект myFile что то возвращает отличное от нуля, а при открытии для записи существующего файла возвращает ноль.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Кстати а для myFile какой тип использован ?

akimov_aleks
Offline
Зарегистрирован: 04.04.2013

разабрался оказалось ошибка новечка.  нужно закрывать перед открытием. 

myFile.close();
myFile = SD.open("test.txt", FILE_WRITE);
...........

 

X-Dron
Offline
Зарегистрирован: 24.01.2015

Пример правильного использования от разработчика
http://www.arduino.cc/en/Tutorial/Datalogger

maksim
Offline
Зарегистрирован: 12.02.2012

akimov_aleks пишет:

разабрался оказалось ошибка новечка.  нужно закрывать перед открытием. 

myFile.close();
myFile = SD.open("test.txt", FILE_WRITE);
...........

Ага, и посуду надо мыть перед тем как из нее собираешься есть, а не после того как поел.