Значение переменной с SD карты, tinyFat

SidPirate
Offline
Зарегистрирован: 06.08.2013

Здравствуйте.

Никак не могу разобраться как при помощи библиотеки tinyFat считывать число из файла c sd карты и значение этого числа присваивать переменной. Может есть пример кода или куска кода где в файле на sd карте находится 2 разных числа и эти числа присваиваются значению 2-х разных переменных?

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

Примерно так:

 

SidPirate
Offline
Зарегистрирован: 06.08.2013

Спасибо, но это пример библиотеки SD, а очень бы хотелось бы пример библиотеки tinyFat

Попробую задать вопрос немного поконкретнее... делаю я пивоварню, так вот в пивовареном процессе есть температурные паузы (для получения сусла - солод с водой выдерживаются определённое время при определённой температуре, время и температура зависят от рецепта пива). Пока у меня получилось выставлять и запоминать температуру и время всех пауз вручную, но что бы не делать рутинную работу каждый раз, хотелось бы иметь возможность загрузки рецептов с sd карты. Тут и появилась проблема... сегодня убил ещё один вечер и проблема всё ещё не решена:

Вот кусок кода с которым не могу разобраться:

int num = 0;
word result;
char textBuffer[11];
 
void strPrint ()
{
  myGLCD.setFont(BigFont);
  myGLCD.setColor(255, 255, 255);
  myGLCD.printNumI(num, 10, 10 + (q*32));
}
 
void loop()
{
  бла бла бла...
        res=file.openFile("recipe.txt", FILEMODE_TEXT_READ);
        if (res==NO_ERROR)
        {
          result=0;
            while ((result!=EOF) and (result!=FILE_IS_EMPTY))
            {
              result=file.readLn(textBuffer, 10);
              num=result;
              strPrint();
              q++;
            }
      }
      file.closeFile();
}

При таком варианте на экран выводится количество символов в каждой строке, а не их значение. А мне нужно каким-то образом сделать 

num=textBuffer;

но тогда получаю ошибку - error: invalid conversion from 'char*' to 'int'

что делать???

maksim
Offline
Зарегистрирован: 12.02.2012
1num = atoi(textBuffer);

 

SidPirate
Offline
Зарегистрирован: 06.08.2013

спасибо, всё заработало.

SidPirate
Offline
Зарегистрирован: 06.08.2013

а зачем в твоём коде нужна 38-я строка???

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

Низачем, можно удалить.

bsdshneg
Offline
Зарегистрирован: 21.10.2014

Всем привет!

Что бы не плодить темы, напишу тут ... 

Я конечно задам может быть ОООЧЕНЬ глупый вопрос .. НО ... как проверить наличие/прочитать файл лежащий не в корне, а в папке?

1if(file.exists("/folder/file.txt")) {
2res = file.openFile("/folder/file.txt", FILEMODE_BINARY);
3...
4} else {
5Serial.println(F(" ...not found :("));
6}

вот я и получаю ...not found :(

Умеет-ли вообще эта библиотека читать файлы не из корня?