FAQ | Points | Add... | Recent posts | Search | Register | Log in


Petitfs odczyt pliku powyżej 512 bajtów


Post new topic  This topic is locked      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> Petitfs odczyt pliku powyżej 512 bajtów
Author
Message
skalsky5000
Poziom 16
Poziom 16


Joined: 01 May 2008
Posts: 291
Location: Rodzinne

Post#1 Post from the author of the topic 29 Jan 2012 16:13   

Petitfs odczyt pliku


Witam.Mam pytanie do osób które używały petits.Mniej więcej rozumiem o co biega ale mam pytanie dotyczące funkcji pf_read();
Code:
FRESULT pf_read (
   void* buff,      /* Pointer to the read buffer (NULL:Forward data to the stream)*/
   WORD btr,      /* Number of bytes to read */
   WORD* br      /* Pointer to number of bytes read */
)

Na razie odczytuje dane nie większe niż bufor (512B) wiec nie ma problemu.Ale co gdy chciałbym odczytać i wyświetlić zawartość pliku np 4kB ?.Mam książkę p.Mirosława Kardasia ale tam biblioteka jest dosyć skąpo opisana.Funkcja pf_read przesuwa wskaźnik z każdym przeczytanym bajtem czyli po przekroczeniu 512B muszę po prostu znowu wywołać pf_read i tak aż do końca pliku ?
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 29 Jan 2012 16:13   





Back to top
   
mirekk36
Poziom 25
Poziom 25


Joined: 17 Jun 2006
Posts: 8714
Location: Szczecin

Post#2 29 Jan 2012 17:08   

Re: Petitfs odczyt pliku


Ideą książki było przestawienie w taki sposób biblioteki aby można ją było odpalić na innych prockach niż ATtiny z interfejsem USI bo tylko tak jest w przykładach na AVR i z tym wielu ludzi miało dotychczas problemy. Sama biblioteka jest już bardzo dobrze udokumentowana na stronie autora i nie widziałem sensu powielania tego tym bardziej, że to tylko kilka poleceń. A przypadku odczytu to na prawdę nie rozumiem o co chodzi koledze ?

Przecież nie ma żadnych ograniczeń co do czytania sektorami itp ....

Ustawiasz wskaźnik np na pozycję 1432 i odczytujesz tyle bajtów ile masz wolnego bufora. Może to być 128, 256 czy 512 co za różnica. Jak odczytasz to potem już nie trzeba ustawiać wskaźnika tylko kolejny raz odczytać do bufora - w czym problem ? nie rozumiem tego kompletnie - w czym tu problem można widzieć i myśleć o przekroczeniu 512B.

Jeśli chcemy czytać plik od początku to nawet nie trzeba z pf_lseek() korzystać tylko od początku czytać np po 512 albo ile się chce bajtów. Jednocześnie trzeba sprawdzać po każdym odczycie czy zostało fizycznie tyle odczytanych ile zadeklarowaliśmy w funkcji pf_read(). A jeśli mniej to znaczy, że już koniec pliku. To WSIO! ;)
Back to top
   
Google

Google Adsense


Post# 29 Jan 2012 17:08   





Back to top
   
skalsky5000
Poziom 16
Poziom 16


Joined: 01 May 2008
Posts: 291
Location: Rodzinne

Post#3 Post from the author of the topic 29 Jan 2012 17:18   

Re: Petitfs odczyt pliku


Dziękuje za odpowiedz.Książka bardzo przypadła mi do gustu tylko rozdział z obsługa kart SD jest trochę słabo opisany dla początkującego.Ale teraz już chyba rozumiem.Czyli mając do odczytania 4kB czytam tak:
Code:
pf_read(bufor,4096,&br)

i sprawdzam aż wartość br będzie równa 4096,jeśli nie to czytam dalej tak ?
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 29 Jan 2012 17:18   





Back to top
   
mirekk36
Poziom 25
Poziom 25


Joined: 17 Jun 2006
Posts: 8714
Location: Szczecin

Post#4 29 Jan 2012 17:37   

Re: Petitfs odczyt pliku powyżej 512 bajtów


Jak mówiłem chodziło o to żeby w ogóle uruchomić Petit czy Fat FS - bo jak widziałeś trochę jest z przejściem z przykładów z USI na SPI.

Z jakiego ty procka chcesz skorzystać, że chcesz też zdeklarować bufor o pojemności 4kB !!??!! Od razu ATmega128 albo większy ?

Co do czytania z karty to polecam mniejszymi kawałkami najlepiej takimi jak wielkość sektora i niedużego bufora w RAM żeby było optymalnie i szybko, czyli:

Code C - [expand]
pf_read(bufor,512,&br);


i to dać w pętli w której będziesz sprawdzał kiedy br będzie mniejsze niż 512. Wtedy KONIEC pliku.
Back to top
   
skalsky5000
Poziom 16
Poziom 16


Joined: 01 May 2008
Posts: 291
Location: Rodzinne

Post#5 Post from the author of the topic 05 Feb 2012 15:26   

Re: Petitfs odczyt pliku powyżej 512 bajtów


Dziękuje za pomoc,układ ruszył i wszystko działa.Ten bufor 4kB to tylko dla przykładu był.Dziękuje jeszcze raz.Pozdrawiam i zamykam.
Back to top
   
Post new topic  This topic is locked      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> Petitfs odczyt pliku powyżej 512 bajtów
Page 1 of 1
Similar topics
[atmega32][c]pcf8583 zapis i odczyt powyżej adresu 0F (3)
Moduł W/A AVT 2857 stały odczyt powyżej 20 V (3)
c++ i najprostszy zapis do pliku i odczyt z pliku (2)
odczyt zapis do flash powyżej 64kB (21)
[API][MFC] odczyt z pliku, problem z nazwą pliku (2)
[Delphi] Odwrócone czytanie bajtów z pliku (2)
[Delphi] Comport4 Odczyt ciagu bajtów z bufora. (5)
[C]Odczyt kilku kolejnych bajtów przez I2C (10)
połączenie 2 bajtów LSB i 2 bajtów MSB (5)
[C++] Odczyt danych z pliku. (7)

Page generation time: 0.1 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed