AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
15.06.2011, 14:02
|
|
Частый гость
Регистрация: 15.11.2007
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: SD/MMC на AVR
Тоже предстоит поработать с библитекой от мистера Чена. Пока обдумываю алгоритм и возник вопрос. Есть некие регистры, в которых содержится текущее время и дата. Можно создавать текстовые файлы и именем типа 15-06-2011.txt и писать туда данные??? Просто в примерах имя файла явно указывается (например "1.txt") мне же нужно имя текстового файла вычислять программно так сказать...
|
|
|
|
15.06.2011, 15:04
|
|
Частый гость
Регистрация: 21.07.2010
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD/MMC на AVR
простой копи-паст функции из страницы вам подойдет, уже использую в своем проекте
http://elm-chan.org/fsw/ff/en/readdir.html
Последний раз редактировалось Дмитриус; 15.06.2011 в 15:07.
|
|
|
|
15.06.2011, 15:11
|
|
Частый гость
Регистрация: 21.07.2010
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD/MMC на AVR
мне в общем огромную помощь даёт хелп кодвижена. пользуюсь поиском в нем. удобно что функции все для работы с SD начинаются на f_ - все видны сразу
|
|
|
|
17.06.2011, 13:11
|
|
Частый гость
Регистрация: 24.08.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от Дмитриус
|
я вот не могу понять в чем затык- во мне или в протеусе... вот собрал в кучу в архив. может что-то не то в настройках у меня? я даже не перекомпилировать пробовал, как есть... не хочет. пишет FR_NOT_READY - может задержку какуюто надо вставить перед чтением?
|
Если ты используешь мой файл-образ, тогда измени название файла на:
unsigned char path[] = {"0:/stroka1.txt"};
И файл откроется.
Вот измененный проект: fat_sd.zip
|
|
|
|
19.06.2011, 23:04
|
|
Частый гость
Регистрация: 21.07.2010
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: SD/MMC на AVR
Dimon2, спасиб я уже разобрался. Думал уже добавить библу для СД карточек в своем проэкте для дисплея 3310, но че то кодвижен сразу виснет при добавдении её в проэкт. насколько я знаю что библиотеки СД сами настраивают SPI, может конфликтуют и из-за этого и повис... причем жестокий. поэтом у переделал на программный SPI свой исходник по принципу sersne. и отпала необходимость в перераспределении ресурсов SPI на дисплей и карточку, дергая соответствующий вывод CS
Последний раз редактировалось Дмитриус; 19.06.2011 в 23:07.
|
|
|
|
22.06.2011, 12:08
|
|
Частый гость
Регистрация: 24.08.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: SD/MMC на AVR
Не могу разобраться как в файл дописывать данные.
Использую f_read(&file,buffer,sizeof(buffer)-1,&nbytes)), а она переписывает только, не добавляя.
|
|
|
|
22.06.2011, 18:41
|
|
Прописка
Регистрация: 09.11.2009
Сообщений: 179
Сказал спасибо: 44
Сказали Спасибо 58 раз(а) в 26 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от Dimon2
|
Не могу разобраться как в файл дописывать данные.
Использую f_read(&file,buffer,sizeof(buffer)-1,&nbytes)), а она переписывает только, не добавляя.
|
для записи данных используется f_write а не f_read. для добавления данных в конец открытого файла используй f_lseek:
f_lseek(FIL*fp, unsigned long offset);
offset равен размеру файла, fp - хендл открытого файла.
|
|
|
|
23.06.2011, 07:17
|
|
Частый гость
Регистрация: 24.08.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от sersne
|
для записи данных используется f_write а не f_read. для добавления данных в конец открытого файла используй f_lseek:
f_lseek(FIL*fp, unsigned long offset);
offset равен размеру файла, fp - хендл открытого файла.
|
Спасибо, уже сам разобрался. Нашел русское описание всех функций.
Есть проще способ:
Открываем файл: f_open(&file,path,FA_WRITE) для записи.
В параметре file.fsize будет текущий объем файла.
Двигаем курсор f_lseek(&file,file.fsize) на file.fsize.
Пишем f_write(&file,text,sizeof(text)-1,&nbytes)
Закрываем файл f_close(&file).
Далее цикл повторяем, если надо.
|
|
|
|
24.06.2011, 01:04
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: SD/MMC на AVR
каким образом определить оставшееся свободное место на карте чтобы не записывает в файл если карта полная?
|
|
|
|
24.06.2011, 06:36
|
|
Частый гость
Регистрация: 24.08.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от anton_1000
|
каким образом определить оставшееся свободное место на карте чтобы не записывает в файл если карта полная?
|
В ответ на запрос записи в файл, вы получите ошибку:
FR_DENIED, (7), в доступе отказано, файл/каталог read-only или каталог переполнен
Что бы определить свободное место на диске, используйте функцию:
FRESULT f_getfree (const XCHAR* path, unsigned long* nclst, FATFS** fatfs);
В параметре fat.free_clust и будет число свободных кластеров.
Если этот параметр равен 0, дальнейшая запись не возможна, хотя, по моему, возможна до запись существующего файла пока не закончатся свободные сектора в кластере который занимает файл.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:53.
|
|