<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=14198&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-15T15:16:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=14198&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-15T15:16:35+01:00</updated>
<published>2016-01-15T15:16:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150704#p150704</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150704#p150704"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150704#p150704"><![CDATA[
<div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />więc to nie wina FatFS.<br /></div><br />od początku to mówiłem<br /><br /><div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Radzę sobie z czytaniem całkiem dobrze<br /></div><br />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:<br /><br />&quot;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?&quot;<br /><br />sorry ale mi już ręce opadają<br /><br />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<br /><br />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<br /><br />kurza melodia no co za problem to pokazać tak, żeby np ktoś kto czyta pytanie mógł wręcz wziąć mychą zaznaczyć - COPY&amp;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 ....<br /><br />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<br /><br />[syntax=c]/* informacja jak mam ustawione taktowanie procka i ew jak mam ustawione fusebity */<br /><br /># include //..... biblioteki systemowe jakie używam<br /><br /># include //..... biblioteki własne jakie używam<br /><br />const .... // tu moje DEFINICJE stringów i tablic wskaźników we Flash<br /><br />int main(void) {<br /><br />   // inicjalizacja UART jaką robię<br /><br />   while(1) {<br /><br />      uart_send( &quot;xxxxx&quot; ); // wysyłam coś tam z RAM aby mieć pewność że mi dobrze działa UART sprzętowo<br /><br />      uart_send_P( &quot;..............  // wysyłam tu swój string ale z FLASH pokazuję jak go odczytuję<br /><br />   }<br /><br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />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ę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 sty 2016, o 15:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bielku]]></name></author>
<updated>2016-01-15T14:57:17+01:00</updated>
<published>2016-01-15T14:57:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150703#p150703</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150703#p150703"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150703#p150703"><![CDATA[
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 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ), podpiąłem UART i na UART też dostaje krzaki (zamiast ala), więc to nie wina FatFS.<br />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.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12459">Bielku</a> — 15 sty 2016, o 14:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-15T14:47:54+01:00</updated>
<published>2016-01-15T14:47:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150702#p150702</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150702#p150702"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150702#p150702"><![CDATA[
<div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Moja wspólna tablica wskaźników:<br /></div><br />No to ja ci pokażę na obrazku (zrzut ekranu z tego co napisałeś i na blogu i w tym wątku wyżej)<br /><a href="https://obrazkiforum.atnel.pl/54/421938c9b3e2e990fb258d91cc0cc199.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/54/421938c9b3e2e990fb258d91cc0cc199.jpg" alt="Obrazek" /></a><br />(widzisz gdzieś na tym obrazku i w kodach które pokazałeś wyżej - specyfikatory const ?)<br /><br /><div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Naprawdę nie widzę czym to się różni i jest mi smutno z tego powodu.<br /></div><br />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:<br /><br />[syntax=c]const char * const ptr_to_text&#91;&#93; PROGMEM[/syntax]<br /><br />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<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 sty 2016, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bielku]]></name></author>
<updated>2016-01-15T14:39:23+01:00</updated>
<published>2016-01-15T14:39:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150701#p150701</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150701#p150701"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150701#p150701"><![CDATA[
Panie Mirku. Napiszę jeszcze raz jak wygląda mój program porównując go z Pańskim z bloga:<br /><br />Moje definicje tablic:<br />[syntax=c]const char gpx_1&#91;&#93; PROGMEM = &quot;ala\n&quot;;<br />const char gpx_2&#91;&#93; PROGMEM = &quot;ma\n&quot;;<br />const char gpx_3&#91;&#93; PROGMEM = &quot;kota\n&quot;;<br />const char gpx_4&#91;&#93; PROGMEM = &quot;i&quot;;<br />const char gpx_5&#91;&#93; PROGMEM = &quot;psa\n&quot;;[/syntax]<br /><br />Pańskie definicje tablic:<br />[syntax=c]const char MenuItem1&#91;&#93; PROGMEM = &quot;Mirek&quot;;<br />const char MenuItem2&#91;&#93; PROGMEM = &quot;Tomek&quot;;<br />const char MenuItem3&#91;&#93; PROGMEM = &quot;Atnel&quot;;[/syntax]<br /><br />Moja wspólna tablica wskaźników:<br />[syntax=c]const char * const ptr_to_text&#91;&#93; PROGMEM = {<br />                gpx_1,<br />                gpx_2,<br />                gpx_3,<br />                gpx_4,<br />                gpx_5<br />};[/syntax]<br /><br />oraz Pańska:<br />[syntax=c]const char * const MenuItemPointers&#91;&#93; PROGMEM = {<br />  MenuItem1,<br />  MenuItem2,<br />  MenuItem3<br />};[/syntax]<br /><br />Odwołanie się do elementu tablicy:<br />[syntax=c]f_puts((char*)pgm_read_word( &amp;ptr_to_text&#91;0&#93; ),file);[/syntax]<br /><br />oraz u Pana:<br />[syntax=c]lcd_str_P( (char*)pgm_read_word( &amp;MenuItemPointers&#91;i&#93; ) );[/syntax]<br /><br />Naprawdę nie widzę czym to się różni i jest mi smutno z tego powodu.<br /><br />Zapomnijmy o kolejnych &quot;skopanych&quot; wersja, to jest uznane za niebyłe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12459">Bielku</a> — 15 sty 2016, o 14:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-15T14:28:21+01:00</updated>
<published>2016-01-15T14:28:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150700#p150700</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150700#p150700"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150700#p150700"><![CDATA[
Ok czyli ja piszę o jednym a ty o CAŁKIEM czymś innym - <br /><br />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()<br /><br />ja mówię o gruszkach a ty o wierzbie - jestem skonsternowany <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> kompletnie nie wiem o co chodzi <br /><br /><div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Pokazałem co próbowałem, żeby nie wyszło, że jestem leniwy<br /></div><br />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 <br /><br />więc po co piszesz, że:<br /><div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Próbowałem już wszystkich możliwości ze stron:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/11/ta" >http://mirekk36.blogspot.com/2013/11/ta</a><!-- m --> ... ogmem.html<br /></div><br />No bo z tej podpowiedzi nie skorzystałeś<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Niestety pierwsza opcja nie działa w moim wypadku,<br /></div><br />W przypadku pierwszej części pokazałeś definicje zmiennych i są one prawidłowe - ALE NIE POKAZAŁEŚ jak się do nich odwołujesz<br /><br /><div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />, ani żadna inna, którą podałem wyżej.<br /></div><br />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<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 sty 2016, o 14:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bielku]]></name></author>
<updated>2016-01-15T14:17:44+01:00</updated>
<published>2016-01-15T14:17:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150698#p150698</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150698#p150698"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150698#p150698"><![CDATA[
<img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> 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:<br /><br />[syntax=c]int f_puts (<br />const TCHAR* str,/* Pointer to the string to be output */<br />FIL* fil/* Pointer to the file object */<br />)<br />{<br />int n;<br /><br /><br />for (n = 0; *str; str++, n++) {<br />if (f_putc(*str, fil) == EOF) return EOF;<br />}<br />return n;<br />}[/syntax]<br /><br />Gdzie TCHAR to alias dla char.<br /><br />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.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12459">Bielku</a> — 15 sty 2016, o 14:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-15T13:51:37+01:00</updated>
<published>2016-01-15T13:51:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150697#p150697</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150697#p150697"/>
<title type="html"><![CDATA[Re: Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150697#p150697"><![CDATA[
<div class="quotetitle">Bielku napisał(a):</div><div class="quotecontent"><br />Na karcie dostaje krzak:<br /></div><br />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...<br /><br />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 &quot;dostaję krzaki&quot; bez pokazania jak ty korzystasz z tych stringów - powoduje - że trzeba by zgadywać - a pisałem na blogu - opisz porządnie problem...<br /><br />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 &quot;i dziwisz się, że ci coś nie działa&quot; ..... 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 ...<br /><br />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ść<br /><br />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<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 sty 2016, o 13:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bielku]]></name></author>
<updated>2016-01-15T13:19:27+01:00</updated>
<published>2016-01-15T13:19:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150695#p150695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150695#p150695"/>
<title type="html"><![CDATA[Zapis tablicy stringów we Flash.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14198&amp;p=150695#p150695"><![CDATA[
Dzień dobry<br /><br />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:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/11/tablica-wskaznikow-we-flash-progmem.html" >http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html</a><!-- m --><br /><br />oraz <br /><br /><!-- m --><a class="postlink" href="http://www.nongnu.org/avr-libc/user-manual/pgmspace.html" >http://www.nongnu.org/avr-libc/user-man ... space.html</a><!-- m --><br /><br />Korzystam z biblioteki zapisu na kartę pamięci FatFS. Gdy stringi są w pamięci RAM nie ma najmniejszego problemu.<br /><br />[syntax=c]#include &quot;gpx.h&quot;<br />#include &lt;avr/pgmspace.h&gt;<br /><br /><br />const char gpx_1&#91;&#93; PROGMEM = &quot;ala\n&quot;;<br />const char gpx_2&#91;&#93; PROGMEM = &quot;ma\n&quot;;<br />const char gpx_3&#91;&#93; PROGMEM = &quot;kota\n&quot;;<br />const char gpx_4&#91;&#93; PROGMEM = &quot;i&quot;;<br />const char gpx_5&#91;&#93; PROGMEM = &quot;psa\n&quot;;<br /><br />const char * const ptr_to_text&#91;&#93; PROGMEM = {<br />gpx_1,<br />gpx_2,<br />gpx_3,<br />gpx_4,<br />gpx_5<br />};<br /><br />void gpx_create(FIL *file,uint8_t mode) {<br />switch(mode) {<br />case(GPX_OPEN):<br />f_puts((char*)pgm_read_word( &amp;ptr_to_text&#91;0&#93; ),file);<br />break;<br />...<br />}[/syntax]<br />Na karcie dostaje krzak:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">лмноџ</div><br /><br />Próbowałem też tak:<br /><br />[syntax=c]char gpx_1&#91;&#93; PROGMEM = &quot;ala\n&quot;;<br />char gpx_2&#91;&#93; PROGMEM = &quot;ma\n&quot;;<br />char gpx_3&#91;&#93; PROGMEM = &quot;kota\n&quot;;<br />char gpx_4&#91;&#93; PROGMEM = &quot;i&quot;;<br />char gpx_5&#91;&#93; PROGMEM = &quot;psa\n&quot;;<br /><br />char * ptr_to_text&#91;&#93; PROGMEM = {<br />gpx_1,<br />gpx_2,<br />gpx_3,<br />gpx_4,<br />gpx_5<br />};[/syntax]<br /><br />Ten sam krzak na wyjściu.<br /><br />Wersja kodu z drugiej strony:<br />[syntax=c]char gpx_1&#91;&#93; PROGMEM = &quot;ala\n&quot;;<br />char gpx_2&#91;&#93; PROGMEM = &quot;ma\n&quot;;<br />char gpx_3&#91;&#93; PROGMEM = &quot;kota\n&quot;;<br />char gpx_4&#91;&#93; PROGMEM = &quot;i&quot;;<br />char gpx_5&#91;&#93; PROGMEM = &quot;psa\n&quot;;<br /><br />PGM_P * ptr_to_text&#91;&#93; PROGMEM = {<br />gpx_1,<br />gpx_2,<br />gpx_3,<br />gpx_4,<br />gpx_5<br />};<br /><br />void gpx_create(FIL *file,uint8_t mode) {<br />switch(mode) {<br />case(GPX_OPEN):<br />f_puts((PGM_P)pgm_read_word(&amp;(ptr_to_text&#91;0&#93;)),file);<br />        ...[/syntax]<br /><br />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.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12459">Bielku</a> — 15 sty 2016, o 13:19</p><hr />
]]></content>
</entry>
</feed>