Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega 328p i SD - Błędny wynik append file

sbruski 25 Mar 2013 21:46 1170 2
  • #1 25 Mar 2013 21:46
    sbruski
    Poziom 9  

    Witam,
    Zabrałem się za logger wg Dharmanitech Link. Wszystko działa za wyjątkiem append file dla plików o wielkości > 4096. Próba odczytu karty na PC jest negatywna. Żeby było ciekawiej atmega czyta prawidłowo do 8192. Powyżej nie czyta ani PC ani Atmega... Bez wątpienia rzecz dzieje się podczas zapisu.
    Tak wygląda próba odczytania pliku = 8544 Bytes:
    Atmega 328p i SD - Błędny wynik append file

    "Error in getting cluster" ????
    Żadnych przeróbek poza portami nie czyniłem. I naprawdę nie wiem co jest grane....
    Jeśli ktoś, coś wie - proszę o pomoc....

    Pozdrawiam
    Staszek

    0 2
  • #2 26 Mar 2013 08:02
    Marek_Skalski
    Moderator Projektowanie

    Na początek proponuję sprawdzić kartę po nieudanym zapisie za pomocą jakiegoś programu, np. Hexplorer. Po włożeniu karty do PC pewnie trzeba będzie ją sformatować (wyczyścić FAT i ROOT, jeżeli to jest FAT16), ale już z tego co będzie zapisane w obszarze danych będzie można określić przyczynę problemów. Hexplorer nie wyświetla zawartości tablicy partycji. Adres 0000:0000 odpowiada pierwszemu bajtowi w określonej partycji (MBR,FAT,ROOT,DATA).
    Linkowany przez Ciebie program jest w wersji 1.0, co zazwyczaj oznacza, że autor poszedł gdzieś na skróty i jeszcze ma sporą listę zatytułowaną "To Do". Inna sprawa, że sporo może zależeć od sposoby formatowania karty. Jeżeli piszesz, że zapis jest błędny powyżej 8 sektorów, to pewnie taką wielkość ma klaster na karcie. Możesz spróbować go zmienić i jeżeli błąd się przeniesie na inny rozmiar, to proponuję przeszukać procedurę obsług FAT pod kątem przeniesienia/linkowania kolejnego klastra do pliku. Widziałem też wiele procedur, które wywalały się na przeniesieniach między sektorami FAT, ale to się pojawia przy większych rozmiarach plików lub większej ilości plików.
    Zachęcam do sprawdzenia co jest na karcie po błędnym zapisie. Coś mi się wydaje, że dane są zapisane prawidłowo i problem jest z linkowaniem klastrów dla pliku. Niestety, nie mam czasu na sprawdzanie programu.
    Powodzenia!

    0
  • #3 26 Mar 2013 22:59
    sbruski
    Poziom 9  

    Witam,

    Dzięki za podpowiedź...Hexplorer jest niezwykle pomocny - zapisałem plik >8192 innym programem Link, obejrzałem -> zapis ciągły, sektor za sektorem, logicznie...
    To samo zrobiłem z programem LOGGER -> kaszana...
    Dzięki temu mniej więcej wiem gdzie szukać.

    Pozdrawiam
    Staszek

    Edit:
    Żadnych tropów - nic nie znalazłem. Wykonałem DOKŁADNIE taką samą płytkę jak autor, wypróbowałem masę microSD - nic. Zakładając, że autor sprawdził program na dużych plikach, to co jest bebe :cry: :cry:

    Edit2:
    Znalazłem nieścisłość w bibliotece Fat.c. Poprawiłem i hula. :D

    Zamykam temat.

    0