Чтение SD карты
- Войдите на сайт для отправки комментариев
Чт, 08/05/2014 - 10:42
Пока едет кардридер хочу подготовится. С записью на карту вроде понятно, почитал, позадавал вопросы.
Теперь с чтением карты. Каждые 50 мс записываю, допустим, две переменные. При чтении нужно
1. Считывать каждые 50 мс
2. Считывать с первой записи ( допустим при нажатии кнопки 1)
3. Считывать с последней записи ( при нажатии кнопки 2)
С кнопками вопросов нет. Как читать с периодичностью и как читать с последней записи ?
Получил кардридер. Записываю переменную на карту и читаю в сериале
Не получается вытащить с карты переменную. Пробую так
В сериале двузначные числа не соответствующие записанным значениям. В чём ошибка?
Разобрался, поменял println на write - всё выводится.
Теперь другая проблема - не получается читать с последнего байта до первого. Библиотеку почитал, в гугле просидел - как реализовать не знаю. Чувствую, что нужно указатель position() выставить на последний байт, а как? Может кто сталкивался?
Есть метод size. Вернет размер фаила.
Я про него читал. A как применить нигде примеров не нашёл.
myFile.position(myFile.size()-1);
byte lastByte = myFile.read();
На dataFile.position(dataFile.size() - 1); ругается
no matching function for call to 'File::position(long unsigned int)'
Моя ошбка. вместо position надо использовать seek
Пробую так - в монитор пишет log.txt , данные не читает
А что в последнем байте?
Ничего. После нажатия кнопки на чтение сразу пишет log.txt
Фаил может кончаться служебными символами типа \n или \r. И они не отображаются в консоли.
Вот первый вариант (чтение с первого байта) - записал, начал читать log.txt - переменная, после прочтения файла пишет log.txt
второй вариант (пытаюсь читать с последнего байта) - при чтении пишет log.txt и всё