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



Teraz jest 28 mar 2024, o 19:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 10 lis 2019, o 11:32 
Offline
Nowy

Dołączył(a): 28 wrz 2019
Posty: 5
Pomógł: 0

Witam serdecznie,
Zakupiłem niedawno zieloną książkę Pana M. Kardasia. Mam jednak problem z obsługą karty SD. Na potrzeby testów skróciłem program. Cały program wykonuje się do końca. Problem stanowi funkcja zapisu bufora do pliku na karcie SD. Po zainicjowaniu karty i wykryciu pliku loger.txt "wykonuje się" operacja zapisu, lecz plik pozostaje niezmieniony. Przy użyciu PetitGen tworzę plik o ilości 50 znaków w rekordzie i zapisie co minutę przez 365 dni. Tutaj mam pewną wątpliwość - plik jest zapełniony kropkami. Czy to jest poprawnie? Drugim problemem, jaki napotkałem, jest kwestia sformatowania karty. Posiadam najzwyklejszą kartę SD o pojemności 2GB. Jak rozumiem, karta ma być sformatowana w systemie FAT32 i posiadać rozmiar jednostki alokacji 512 bajtów? Zamieszczam screen ustawień oraz Main skróconego programu. Pętla for miała zapisać ten sam tekst w kilku liniach pliku, lecz najpierw chcę się uporać z podstawowym problemem, dlatego jest zakomentowana. Obsługa karty jest dla mnie niezbędna, gdyż muszę ją dodać do mojego projektu, który tworzę na studia. Proszę o sprawdzenie kodu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2019, o 12:52 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Po pierwsze to wywal z kodu F_CPU.
Takie rzeczy ustawia się we właściwościach projektu i tylko tam.
Jeśli przełączasz pin PB3 a tam masz podpięte zasilanie karty to:
nic dziwnego, że nie chce Ci nic zapisać na kartę.
Jak zdejmiesz zasilanie z karty to potem musisz ją na nowo zainicjować i otworzyć plik.

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2019, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Kolacz napisał(a):
Powinno się ustawiać. Jeśli robi się to świadomie, to nie trzeba.
Tak, może przy projekcie jednoplikowym. Powodzenia w projekcie z wieloma dołączonymi bibliotekami z czego w każdej będzie zdefiniowane inne f_cpu.

Kolacz napisał(a):
Praktycznie w każdym AVR można "tachlować" zegarem, raz podzielnik 1 za chwile 8 bo mniejszy pobór prądu jest wymagany.
A to ciekawe, bo z tego co wiem to takie opcje są dostępne ale nie jak piszesz w praktycznie każdym AVR tylko w nielicznych. Bo większość AVR-ów opcje taktowania ma dostępne tylko w fusebitach i taktowania nie da się zmienić z poziomu programu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2019, o 22:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Kolacz napisał(a):
Dla mnie praktycznie każdy, to każdy w miarę nowy a nie dinozaur jak na przykład mega16.
No i tu jest sedno, dla Ciebie. Piszesz ogólnikowo "Prawie każdy AVR", a tu nagle się okazuje że tylko najnowsze. Wprowadzasz w błąd takimi wypowiedziami. Poza tym atmega 16 jest ciągle w produkcji więc nie wiem czy można ją nazwać mianem wymarłego gatunku. Poza tym jest np. seria atmeg 88 ... 328 chyba najbardziej popularna do dziś rodzina która również ma taktowanie ustawiane tylko z fusów. Nawet najnowsze jej odmiany z dodatkowymi literkami na końcu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2019, o 22:46 
Offline
Moderator
Avatar użytkownika

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

Kolacz napisał(a):
Powinno się ustawiać. Jeśli robi się to świadomie, to nie trzeba.

Po raz kolejny szanowny kolega bzdury pisze ... Tu jest wiele początkujących osób, które chcą się czegoś nauczyć - nie zaś wysłuchiwać na temat wyższej świadomości kolegi

Kolacz napisał(a):
Dla mnie praktycznie każdy, to każdy w miarę nowy a nie dinozaur jak na przykład mega16.

Tak a najlepiej od raz STM albo Intel 64-bit

Krótko mówiąc kompletny brak praktyki - co już nie pierwszy raz kolega tu udowadnia na forum

i znowu bajki o dinozaurach - nie dosyć już koledze po ostatnim wątku w którym próbowałeś wszczynać dyskusję o wyższości świąt Bożego narodzenia nad świętami Wielkiej nocy ... czyli które procki są lepsze ?

_________________
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: 11 lis 2019, o 13:00 
Offline
Nowy

Dołączył(a): 28 wrz 2019
Posty: 5
Pomógł: 0

Koledzy.. czy ktoś pomoże mi z problemem? Czy będziemy tutaj dyskutować o definiowaniu taktowania procka..? :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2019, o 15:00 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

A przeczytałeś co Ci napisałem? Czy skupiłeś się na definiowaniu taktowania procka?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2019, o 16:58 
Offline
Nowy

Dołączył(a): 28 wrz 2019
Posty: 5
Pomógł: 0

MirkoT napisał(a):
Jeśli przełączasz pin PB3 a tam masz podpięte zasilanie karty to:
nic dziwnego, że nie chce Ci nic zapisać na kartę.
Jak zdejmiesz zasilanie z karty to potem musisz ją na nowo zainicjować i otworzyć plik.

Nie za bardzo rozumiem, jedyny błąd jaki wyłapałem, to zamienione 1/0 podawane na PB3, bo moduł mam podłączony przez tranzystor. Teraz od początku programu aż za linijkę res = mk_pf_file_append(&fs, "loger.txt", rekord); jest podane zasilanie na moduł. Dalej się nic nie zmienia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2019, o 19:17 
Offline
Moderator
Avatar użytkownika

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

fifcio13-13 napisał(a):
Koledzy.. czy ktoś pomoże mi z problemem? Czy będziemy tutaj dyskutować o definiowaniu taktowania procka..? :/


Chłopie - toż od koledzy zwracają ci od samego początku uwagę na podstawowe babole jakie robisz w kodzie - a ty sobie piszesz - że chodzi tylko o jakąś durną dyskusję o taktowaniu procka. To nie jest bzdurna dyskusja tylko twój pierwszy babol w kodzie i to poważny, a że go nawet nie rozumiesz - to kto ci może na to coś poradzić - poza samym tobą ... Jeśli sadzisz takie babole od początku prezentowanego kodu, którego tworzy na podstawie książki - w której autor czyli ja od samego początku kładzie nacisk na to żeby początkujące osoby zrozumiały w czym rzecz - a dla ciebie to "fiu-bździu" to jakiej ty pomocy oczekujesz na forum ? Jeśli nawet w tak podstawowym zakresie nie potrafisz czegoś zgodnie z książką zrobić to diabeł wie ile jeszcze w innych miejscach zrobiłeś podobnych baboli.

To forum jest po to aby pomóc a nie utwierdzać początkującego - że wszystko co robi jest idealne tylko może procek źle działa, albo kompilator zepsuty czy krzem krzywo naniesiony

_________________
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: 11 lis 2019, o 19:47 
Offline
Nowy

Dołączył(a): 28 wrz 2019
Posty: 5
Pomógł: 0

Tak mnie nauczyli na studiach. Poszukałem trochę i udało mi się to zmienić w opcjach projektu. Ale nic to nie zmieniło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2019, o 07:10 
Offline
Moderator
Avatar użytkownika

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

fifcio13-13 napisał(a):
plik jest zapełniony kropkami. Czy to jest poprawnie?

Jakimi kropkami - zajrzyj za pomocą byle programu np Total Commander i zobacz jaki jest to kod ASCII - bo na pewno nie kropka. Zwykle 0xFF - a to że wyświetlają go niektóre edytory jako kropkę - to co to ma za znaczenie ?

sprawdź poza tym nowszą wersję programu PetitGen, masz ją w załączniku

------------------------ [ Dodano po: 1 minucie ]

fifcio13-13 napisał(a):
Posiadam najzwyklejszą kartę SD o pojemności 2GB. Jak rozumiem, karta ma być sformatowana w systemie FAT32

Ma być po prostu FAT32 i nie ma co wnikać w jednostki alokacji - wystarczy sformatować dowolnym programem jako FAT32

------------------------ [ Dodano po: 4 minutach ]

poza tym wszystkim możesz mieć tak w ogóle złe połączenia ale schematu nie pokazałeś


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
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: 12 lis 2019, o 13:36 
Offline
Nowy

Dołączył(a): 28 wrz 2019
Posty: 5
Pomógł: 0

Już sobie z tym poradziłem. Połączenia mam dobre. Podsumowując: Przede wszystkim w funkcji mk_pf_file_append brakowało wywołania zamknięcia pliku pf_write(0, 0, &rb);
Oba generatory działają niepoprawnie. Podejrzałem wartość rb z funkcji pf_read i okazało się, że pliki są już zapełnione. Pomogło dopiero ręczne wygenerowanie pliku i zapisanie go znakiem 0xA0 poprzez skrót klawiszowy Alt+0160.



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: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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