Witajcie.
Postanowiłem zgłębić tajniki obsługi kart SD. Od dawna nosiłem się z tym zamiarem, no i zaczęło się ... W sumie start był dobry. Mam zestaw atb 1.04. Podpiąłem slot karty na pokładzie do odpowiednich pinów atmegi 32. Skorzystałem z adaptera do kart microSD. Zastosowałem lekcję 15_TEST_Petit_FS z
BB. Obejrzałem trzy poradniki Mirka do tego
tematu. Wszystko poszło prawie od razu.
Zależało mi na razie tylko na odczycie plików tekstowych z karty, a więc usunąłem wszystko z kodu odnoście zapisu. Następnie podpiąłem zewnętrzny slot do kart microSD, jakich pełno na
znanym portalu aukcyjnym do arduino. Wszystko śmiga bardzo dobrze i powtarzalnie na różnych kartach microSD 1gb. Wziąłem kartę 16gb na testy i utworzyłem na niej partycję fat 1gb.
Również śmiga. Robiłem to wszystko na zestawie uruchomieniowym.
Problemy się zaczęły, kiedy przeniosłem program na pcb, która to płytka jest obsługiwana przez programator usbasp atnel (na zestawie używam wbudowany programator na ftdi). Czyli podpiąłem się kartą pod złącze spi atmegi. Do sygnału CS wykorzystałem port, pin PB1. Ustawiłem ten port w pliku mmc.c biblioteki PetitFS.
Na początku jeden procek przestał działać. Nie mogę go odczytać. Wpiąłem drugi i działa póki co, ale program się ciągle zawiesza. Tzn program nie dociera do while(1). W while(1)
wyświetlam tekst "test". Jeśli z main usunę
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to tekst z while(1) się wyświetla, czyli ok. Po odkomentowaniu zawiecha. Stanąłem w miejscu. W poradniku Mirka o testowaniu kart jest mowa o włączaniu i wyłączaniu spi. Może tu tkwi problem.
Napisałem coś takiego, ale nie jestem pewny...
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wiesza się program. Co robię źle ???