Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 20 kwi 2024, o 12:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 26 mar 2013, o 23:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Witam.

Zabrałem się za obsługę kart SD przy pomocy PetitFs. Tym tematem jeszcze się nie zajmowałem dlatego postanowiłem uruchomić przykład z płyty DVD na zestawie ATB 1.04 z procesorem Atmega32.
Program działa dobrze do momentu zresetowania procesora. Po resecie na wyświetlaczu wyświetla się "disk init error". Po wyciągnięciu i powtórnym włożeniu karty albo kilkukrotnym resecie jest to samo czyli odczyt, zapis a po resecie ten sam błąd.
Pomyślałem sobie, że skoro jednorazowa inicjalizacja karty nie daje rezultatu to może by tak ją inicjalizować do skutku. Więc inicjalizację karty umieściłem w petli do...while
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i ku mojemu zdziwieniu program zaczął działać poprawnie.
Czy taki objaw może zależeć od egzemplarza karty?
Na razie nie mam innej karty żeby to sprawdzić. Aktualnie używam takiej: SDHC 4GB class4.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2013, o 23:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

To jest tylko PetitFS - niestety operacje zapisu potraktowane zostały po macoszemu ... ale i słusznie poniekąd bo dzięki temu udało się DRASTYCZNIE odchudzić bibliotekę FatFS przecież ....

więc po operacjach zapisu bywa właśnie nieciekawie i tak właśnie jest - często pomaga kilkakrotna inicjalizacja więc się nie martw. A w drugiej książce

http://atnel.pl/jezyk-c-pasja-programowania.html

pokazuję jak podejść do PetitFS'a żeby było z tym lepiej i dlatego też wprowadziłem programowe sterowanie zasilaniem karty w celu jej PEŁNEGO resetu. Poza tym stworzyłem i opisałem pewną funkcję do zapisu na kartę - wprawdzie nadal obarczoną pewnymi mankamentami i wadami ale da się nawet na takim Petitku zrobić prosty Datalogerek jeśli nie potrzebujemy zbyt często zapisywać danych na karcie i działa to całkiem fajnie wtedy

a na ATB 1.04 elektronika przewiduje korzystanie z tego sterowania zasilaniem (więc fajnie te ćwiczenia można przeprowadzić)

sam efekt pracy takiego datalogerka wygląda tak:

http://www.mirekk36.blogspot.com/2012/0 ... ch-do.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2013, o 23:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

Antystatyczny napisał(a):
Jacek, jeśli możesz... opisuj tutaj wszelkie problemy z PetitFS, bo mam potworne problemy z uruchomieniem tego softu zarówno na ATB jak i na innych modułach i róznych źródłach zasilania. Podmiany kart też nic nie dają. Twoje doświadczenia być może i mi pomogą


Anty - najbardziej mnie martwi że z samym odczytem masz kłopoty na PetitFS bo to powinno ślicznie śmigać ... ale wiesz że czekam na ciebie na Skype i jestem do usług ;) w tym zakresie

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2013, o 10:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lis 2011
Posty: 534
Lokalizacja: Mierzyn
Pomógł: 9

Mi dziala inicjalizacja odczyt , problem z zapisem ale to Mirek w greenbooku wyjasnil co trzeba robic :) Testowalem dla 5 roznych kart.

_________________
pozdrawiam
Jachu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2013, o 19:01 

Pomógł: 0

Sam ostatnio z tym walczyłem. Zadziałało na glsie podlaczenia dokladnie wg książki. Ale gryzie sie coś jak jednocześnie uruchomilem LCD po i2c, jutro może podepne analizator pod szyny i zobacze w ktorym momencie sie krzaczy



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2013, o 22:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Widzę, że nie tylko ja mam problemy z zapisem. Generalnie odczyt działa mi dobrze. Nic się nie wiesza.
W sumie to PetitFs będę używał raczej do odczytu bo w planach mam zamiar zrobić malutki wav playerek, którego chcę zamontować do zabawki mojego synka zamiast oryginalnego "grajka", który gada po angielsku i do tego bardzo niewyraźnie. Po głowie chodzi mi również jakiś mały serwer na avr-ku ze stroną www zapisaną na karcie SD zamiast we flashu.

Ale jeśli PetitFs zapewnia również zapis to szkoda aby to nie działało i nie korzystać z tego. Będę musiał dokładnie przeczytać rozdział o Datalogerze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2013, o 23:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lis 2011
Posty: 534
Lokalizacja: Mierzyn
Pomógł: 9

jacekk232 napisał(a):
Widzę, że nie tylko ja mam problemy z zapisem. Generalnie odczyt działa mi dobrze. Nic się nie wiesza.
W sumie to PetitFs będę używał raczej do odczytu bo w planach mam zamiar zrobić malutki wav playerek, którego chcę zamontować do zabawki mojego synka zamiast oryginalnego "grajka", który gada po angielsku i do tego bardzo niewyraźnie. Po głowie chodzi mi również jakiś mały serwer na avr-ku ze stroną www zapisaną na karcie SD zamiast we flashu.

Ale jeśli PetitFs zapewnia również zapis to szkoda aby to nie działało i nie korzystać z tego. Będę musiał dokładnie przeczytać rozdział o Datalogerze.


masz zielona ksiazke ? Z tego co pamietam trzeba wykonywac reset przed kazdym zapisem ale musze slokanc a knige mam w pracy .

_________________
pozdrawiam
Jachu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2013, o 22:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Mam pytanie odnośnie funkcji pf_readdir. Napisałem programik, który odczytuje zawartość folderu "sample" i odczytane pliki wyświetla na LCD.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W folderze są 3 pliki. Funkcja pf_readdir ładnie odczytuje nazwy plików. Po odczytaniu nazwy ostatniego pliku kolejny odczyt zawartości folderu zwraca pustą nazwę pliku. Z tego co wyczytałem to następne wywołanie funkcji pf_readdir powinno odczytać nazwę pierwszego pliku w folderze. A u mnie tak nie jest. Pętla while(1) się kręci bo dioda LED miga ale funkcja pf_readdir nic nie odczytuje. Dioda przy karcie SD tez się nie świeci.
Ale jeśli po odczytaniu pustej nazwy pliku opuszczę pętlę while i ponownie otworze folder "sample" funkcją pf_opendir to kolejny odczyt zawartości folderu zwraca już poprawnie nazwę pierwszego pliku w folderze.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy to działanie funkcji pf_readdir jest poprawne czy może ja się czepiam?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2013, o 00:08 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

Wydaje mi sie ze powinno dzialac tak jak piszesz, mi tak chyba dziala ale nie mam jak teraz spr. Pisze z fona. A ty sprobuj to samo ale z folderu glownego karty ok?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2013, o 14:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Pliki z folderu głównego odczytuje tak samo.
Ogólnie to nie jest jakiś poważny problem. Bo po każdym odczycie mogę sprawdzać czy dostałem pustą nazwę. A jeśli tak to wystarczy ponownie otworzyć folder.

Przeglądając kod Wav Playera zauważyłem fragment, który powinien tak samo działać
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

czyli jeśli funkcja odczyta pustą nazwę to następuje jej przerwanie i program wraca do pętli wyżej gdzie następuje ponowne otwarcie folderu głównego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2013, o 17:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

o widzisz pan ;) faktycznie - jednak tak też robi sam autor PetitFS'a więc chyba nawet tak trzeba - bo to jest konstrukcja od niego zapożyczona

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO