30-10-2018, 10:26
(30-10-2018, 09:02)wchpikus napisał(a): Raczej chodzi mi o jakas funkcje lub przyklad, jak mozna odczytac np 30 bajtow z zapamietaniem pozycji.
Find() lub inna funkcja zwracajaca?
FatFS ma funkcję seek, ta umożliwia odczyt od wybranej pozycji. Funkcja read pozwala odczytać dowlna liczbę bajtów, nie koniecznie cały plik.
Kod:
f_lseek( &plik, ptr_odczytu );
FRESULT fresult_read = f_read( &plik, bufor_sd, bajtow_do_odczytu, &odczytanychBajtow );
Pamiętaj też, że odczyt z karty SD ma pewne wymagania co do szybkości interfejsu i zapotrzebowania na RAM. Na 2kb RAM (pewnie używasz UNO) to niewiele zrobisz, pewnie nawet nie da się równocześnie otworzyć kilku plików. Szybkość (w przypadku AVR wolność) SPI nie ułatwia sprawy,w dodatku tylko 1-bit a brak DMA dobija (nie tylko w przypadku RAM).
FATem na AVR możesz się pobawić ale coś sensownego to zrobisz tylko na Xmega cz lepiej ARM.
Próbowałem FAT na różnych platformach, jakość działania od najgorszego:
AVR
ARM, VNC-2
RaspberryPi