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



Teraz jest 29 kwi 2026, o 08:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 15 sty 2016, o 13:19 
Offline
Nowy

Dołączył(a): 07 sty 2016
Posty: 4
Pomógł: 0

Dzień dobry

Mam problem z zapisem stringów do pamięci Flash mikrokontrolera Atmega32A. Pracuję w Eclipse gcc 4.3.3. Próbowałem już wszystkich możliwości ze stron:

http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html

oraz

http://www.nongnu.org/avr-libc/user-man ... space.html

Korzystam z biblioteki zapisu na kartę pamięci FatFS. Gdy stringi są w pamięci RAM nie ma najmniejszego problemu.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Na karcie dostaje krzak:
Kod:
лмноџ


Próbowałem też tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ten sam krzak na wyjściu.

Wersja kodu z drugiej strony:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Niestety też nie działa prawidłowo. Chciałbym nie tworzyć żadnego wieloznakowego bufora danych, ponieważ z RAM'em jestem na bakier a docelowe komunikaty nie są krótkie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 13:51 
Offline
Moderator
Avatar użytkownika

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

Bielku napisał(a):
Na karcie dostaje krzak:

Pierwszy opisany sposób MUSI działać poprawnie - a to że dostajesz krzaki - to jest spowodowane .... nie wiadomo czym bo nie wiadomo co ty z tym robisz...

W tym pierwszym przypadku masz po prostu zdefiniowanych kilka oddzielnych stringów - mają ładnie specyfikator const i PROGMEM - a więc są to prawidłowe definicje .... Więc opis problemu że "dostaję krzaki" bez pokazania jak ty korzystasz z tych stringów - powoduje - że trzeba by zgadywać - a pisałem na blogu - opisz porządnie problem...

ale idźmy dalej ... później stara się stworzyć tablicę wskaźników na stringi ... no i tu przede wszystkim masakra - bo też na blogu pisałem tobie, że masz podane rozwiązanie - a ty nadal tworzysz to źle nie korzystając z podpowiedzi na blogu pod koniec artykułu - i znowu powiem to samo co na blogu "i dziwisz się, że ci coś nie działa" ..... a w tym przypadku to już nawet nie jest ważne co ty robisz dalej z tymi stringami bo i tak są złe definicje we Flash ...

masz pan pod koniec artykułu na blogu nawet pokazany błąd jaki się ukazuje przy tego typu złych definicjach, masz jak byk taką dużą czerwoną strzałkę, która wyjaśnia co i jak trzeba zrobić - i gdzie to masz w kodzie swoim, który tu pokazujesz ? No przecież ty robisz wszystko tak jak na początku artykułu pokazuję, że ludzie źle robią - po to aby pokazać jak należy do tego podejść

Ba na końcu masz nawet już kurka wodna gotowe przykłady w C jak z tego korzystać i jak definiować - no a ty nadal powołujesz się na artykuł i piszesz, że wszystko stosowałeś - tymczasem w tym co pokazujesz wyżej - nie ma za grosz tego co w artykule w rozwiązaniu

_________________
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: 15 sty 2016, o 14:17 
Offline
Nowy

Dołączył(a): 07 sty 2016
Posty: 4
Pomógł: 0

:) Pokazałem co próbowałem, żeby nie wyszło, że jestem leniwy i wytestowałem tylko jedną możliwość. Niestety pierwsza opcja nie działa w moim wypadku, ani żadna inna, którą podałem wyżej. Spodziewam się tego, że dostaje wskaźnik do mojego stringa w pamięci Flash. A dalej wykonuje na niej funkcje z biblioteki FatFS f_puts, która wygląda następująco:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdzie TCHAR to alias dla char.

Rozumiem to tak, że znak po znaku jest zapisywany do pliku. Domniemam, że dostaje po prostu jakiś zły adres i stąd te krzaki. Nie rozumiem tylko dlaczego tak się dzieje? Jak zajrzę głębiej do tablicy to wypluwa mi nawet jakieś stałe tekstowe z samej biblioteki FatFS (np RC=0, czy fragmenty komunikatów). Pracuje na bibliotece FatFS, która jest zamieszczona w pierwszej wersji bluebooka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 14:28 
Offline
Moderator
Avatar użytkownika

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

Ok czyli ja piszę o jednym a ty o CAŁKIEM czymś innym -

ok, nie ważne, że nie korzystasz z podpowiedzi na blogu - no trudno .... więc ja się wyłączam - cóż mogę poradzić ? Jeszcze raz powtarzam, że twoje definicje tablicy wskaźników są złe i nie mają prawa działać i nie jest ważne co jest w funkcji f_puts()

ja mówię o gruszkach a ty o wierzbie - jestem skonsternowany ;) kompletnie nie wiem o co chodzi

Bielku napisał(a):
Pokazałem co próbowałem, żeby nie wyszło, że jestem leniwy

A co to za związki z jakąś leniwością .... ? .... Tymczasem po raz ale ostatni powtórzę - że W OGÓLE nie skorzystałeś z podpowiedzi na blogu w tym artykule - ani na milimetr

więc po co piszesz, że:
Bielku napisał(a):
Próbowałem już wszystkich możliwości ze stron:

http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html

No bo z tej podpowiedzi nie skorzystałeś

------------------------ [ Dodano po: 2 minutach ]

Bielku napisał(a):
Niestety pierwsza opcja nie działa w moim wypadku,

W przypadku pierwszej części pokazałeś definicje zmiennych i są one prawidłowe - ALE NIE POKAZAŁEŚ jak się do nich odwołujesz

Bielku napisał(a):
, ani żadna inna, którą podałem wyżej.

W przypadku kolejnych - mówię ci wprost że masz SKOPANE definicje tej tablicy wskaźników a ty tu z kolei dalej swoje o tym jak je odczytujesz - co już nie ma żadnego sensu skoro definicje są skopane

_________________
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: 15 sty 2016, o 14:39 
Offline
Nowy

Dołączył(a): 07 sty 2016
Posty: 4
Pomógł: 0

Panie Mirku. Napiszę jeszcze raz jak wygląda mój program porównując go z Pańskim z bloga:

Moje definicje tablic:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pańskie definicje tablic:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Moja wspólna tablica wskaźników:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz Pańska:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Odwołanie się do elementu tablicy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz u Pana:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Naprawdę nie widzę czym to się różni i jest mi smutno z tego powodu.

Zapomnijmy o kolejnych "skopanych" wersja, to jest uznane za niebyłe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 14:47 
Offline
Moderator
Avatar użytkownika

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

Bielku napisał(a):
Moja wspólna tablica wskaźników:

No to ja ci pokażę na obrazku (zrzut ekranu z tego co napisałeś i na blogu i w tym wątku wyżej)
Obrazek
(widzisz gdzieś na tym obrazku i w kodach które pokazałeś wyżej - specyfikatory const ?)

Bielku napisał(a):
Naprawdę nie widzę czym to się różni i jest mi smutno z tego powodu.

Ja widzę czym to się różni i też mi jest smutno z tego powodu, że ty tego nie widziałeś bo teraz dopiero napisałeś to tak jak ma być, czyli:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


no więc sam pomyśl - ile już gadamy i na blogu i tutaj i już można dostać nie powiem czego .... żeby ci wskazać co źle robisz

_________________
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: 15 sty 2016, o 14:57 
Offline
Nowy

Dołączył(a): 07 sty 2016
Posty: 4
Pomógł: 0

Eeeh, skopiowałem kody z mojego pierwszego posta, pierwszego kodu, to wszystko było napisane, nic nie zmieniłem! Wstawiłem w poprzednim poście mój kod, który jest poprawny tak? Problem jest taki, że to nie działa (ten z poprzedniego posta, poprawny ;) ), podpiąłem UART i na UART też dostaje krzaki (zamiast ala), więc to nie wina FatFS.
Radzę sobie z czytaniem całkiem dobrze. Proszę już nie wracać do reszty niepoprawnych kodów z pierwszego posta, rozumiem, że nie są one dobre.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 15:16 
Offline
Moderator
Avatar użytkownika

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

Bielku napisał(a):
więc to nie wina FatFS.

od początku to mówiłem

Bielku napisał(a):
Radzę sobie z czytaniem całkiem dobrze

wirzę i nigdy nie mówiłem że jest inaczej - ale już z zadawaniem pytań to sobie kolega KOMPLETNIE nie radzi no bo teraz proszę jest kolejne pytanie typu:

"no dobra wszystko już poprawiłem jak na blogu ale teraz mi nie działa przez UART bo mam krzaki, co może być powodem?"

sorry ale mi już ręce opadają

albo pokażesz krótki testowy kod co robisz - i od samego początku trzeba było to robić - mówię to bodajże w co drugim poradniku, że jak coś nie działa - to testuj to dzieląc problem na mniejsze kawałki i na mniejszym kodzie - zamiast doszukiwać się problemu w całym swoim projekcie czyli np w FatFS

no co za problem stworzyć kod - KILKA kurczę linijek gdzie tworzę sobie np string, później tablicę wskaźników do której podpinam ten string, później inicjalizuję w main UART, później w pętli while - wysyłam co sekundę tenże string

kurza melodia no co za problem to pokazać tak, żeby np ktoś kto czyta pytanie mógł wręcz wziąć mychą zaznaczyć - COPY&PASTE wkleić do siebie do Eclipsa i sprawdzić co się dzieje - żeby ci od razu coś podpowiedzieć - NIE ! ... ty wolisz rozpocząć kolejną turę kalamburów - skończyły się kalambury z TafFS teraz będę cię przekonywał żebyś pokazał coś z UART co robisz ? No toż to już jest .... nie powiem co ....

przecież krzaki na uart możesz nawet dostawać z tak głupiego powodu że np coś źle ustawiłeś w transmisji - a kod testowy by wszystko wyjaśnił - jak ja bym miał zadać to pytanie to bym do jasnej ciasnej dołączył do tego tego typu kod

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: kilkunastu sekundach ]

obiecuję, że jak kolejny raz zadasz kalambura zamiast porządnie zadanego pytania to ja znikam z tego wątku - może ktoś inny pomoże .... bo ja wymięknę

_________________
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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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