Значение переменной с SD карты, tinyFat
- Войдите на сайт для отправки комментариев
Ср, 16/10/2013 - 06:55
Здравствуйте.
Никак не могу разобраться как при помощи библиотеки tinyFat считывать число из файла c sd карты и значение этого числа присваивать переменной. Может есть пример кода или куска кода где в файле на sd карте находится 2 разных числа и эти числа присваиваются значению 2-х разных переменных?
Примерно так:
/*в файле BASE.txt делаете записи: c3658,a123,b789. или так: b789 a123 c3658_ - в конце тоже пробел или так: a123 c3658 b789 _ - к конце новая пустая строка порядок записи переменных не важен */ #include <SD.h> #define CS 4 // CS SD-карты #define FILE "BASE.txt" void setup() { Serial.begin(9600); pinMode(CS, OUTPUT); if (!SD.begin(CS)) { Serial.println("Card failed, or not present"); return; } Serial.println("card initialized."); } void loop() { int a = 0; int b = 0; int c = 0; File dataFile = SD.open(FILE, FILE_READ); if(dataFile) { unsigned long buff = 0; while (dataFile.available()) { char ch = dataFile.read(); if(ch == 'a') { a = dataFile.parseInt(); Serial.print("a = "); Serial.println(a); } else if(ch == 'b') { b = dataFile.parseInt(); Serial.print("b = "); Serial.println(b); } else if(ch == 'c') { c = dataFile.parseInt(); Serial.print("c = "); Serial.println(c); } } dataFile.close(); } else Serial.println("error opening file"); while(1); }Спасибо, но это пример библиотеки SD, а очень бы хотелось бы пример библиотеки tinyFat
Попробую задать вопрос немного поконкретнее... делаю я пивоварню, так вот в пивовареном процессе есть температурные паузы (для получения сусла - солод с водой выдерживаются определённое время при определённой температуре, время и температура зависят от рецепта пива). Пока у меня получилось выставлять и запоминать температуру и время всех пауз вручную, но что бы не делать рутинную работу каждый раз, хотелось бы иметь возможность загрузки рецептов с sd карты. Тут и появилась проблема... сегодня убил ещё один вечер и проблема всё ещё не решена:
Вот кусок кода с которым не могу разобраться:
При таком варианте на экран выводится количество символов в каждой строке, а не их значение. А мне нужно каким-то образом сделать
num=textBuffer;
но тогда получаю ошибку - error: invalid conversion from 'char*' to 'int'
что делать???
спасибо, всё заработало.
а зачем в твоём коде нужна 38-я строка???
Низачем, можно удалить.
Всем привет!
Что бы не плодить темы, напишу тут ...
Я конечно задам может быть ОООЧЕНЬ глупый вопрос .. НО ... как проверить наличие/прочитать файл лежащий не в корне, а в папке?
if(file.exists("/folder/file.txt")) { res = file.openFile("/folder/file.txt", FILEMODE_BINARY); ... } else { Serial.println(F(" ...not found :(")); }вот я и получаю ...not found :(
Умеет-ли вообще эта библиотека читать файлы не из корня?