<?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=3268&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-06-09T21:36:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3268&amp;mode</id>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-06-09T21:36:01+01:00</updated>
<published>2013-06-09T21:36:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38881#p38881</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38881#p38881"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38881#p38881"><![CDATA[
Dobrze myślałem. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Powodzenia w dalszym projektowaniu. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 9 cze 2013, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-09T21:13:36+01:00</updated>
<published>2013-06-09T21:13:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38876#p38876</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38876#p38876"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38876#p38876"><![CDATA[
<div class="quotetitle">Ledes napisał(a):</div><div class="quotecontent"><br />A preskaler dla timera masz dobrze ustawiony? Wyliczone wszystko z uwzględnieniem twojego kwarcu i wszystko się zgadza?<br /></div> No własnie tutaj leżał babol, niestety wprowadziłem zły preskaler przy moim taktowaniu 24MHz. Poprawiłem wszystko i działa poprawnie. Powinna być wartość 234 zamiast 108 ponieważ: 24000000/1024/234/ ~ 100,160 Hz.<br />Dzięki wszystkim za pomoc w temacie oraz szybkie wprowadzenie w timery programowe, które już widzę jaką są potęgą. Wracam dalej to budowania projektu.<br />Pzdr<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 cze 2013, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-06-09T15:31:06+01:00</updated>
<published>2013-06-09T15:31:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38806#p38806</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38806#p38806"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38806#p38806"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Co do twojej wypowiedzi zgadzam się w 100%, suma sumarum zawiodłem się na uczelni i niestety ocenę końcową dostaje ode mnie negatywną. Żeby się tak męczyć z niektórymi przedmiotami (czyt. JT) to trochę przegięcie. Ale było, minęło, ważne, że udało się dotrwać do tego inż.<br /></div><br />Nie no, trochę za daleko wysunięte wnioski. PP jest w czołówce politechnik w Polsce. Nie powiesz mi, że jest źle wyposażona (biblioteki, sale wykładowe, laboratoria), że nie daje super możliwości (staże, praktyki, projekty), że nie ma renomy bo ma. Ale rozumiem twoje rozgoryczenie, bo pomimo nazwy kierunku Elektronika i Telekomunikacja niestety proporcje między elektroniką i telekomunikacją są 1:10 i jak ktoś nie jest sieciowcem czy innym radiowcem z krwi i kości to może być zawiedzony. Również wiele przedmiotów jest prowadzonych na bardzo słabym poziomie (Bandyta). Ale nie mów nic złego na JT, bo to właśnie jest skarb wydziału. Mnie osobiście najwięcej nauczył ze wszystkich wykładowców. Wymaga - fakt, ale genialnie wykłada, uczy mega przydatnych i praktycznych rzeczy. Spójrz na to z innej strony. Pomęczyłeś się z JT, ale za to kumasz w miarę C++, algorytmy i cyfrówkę. Teraz porównaj sobie swoją wiedzę z cyfrówki i analogówki wyniesioną tylko ze studiów. Nie ma porównania. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Wracając do tematu wskaźników nigdy nie darzyłem ich sympatią. Jednak po raz kolejny muszę pochwalić Mirka i jego książki, bo naprawdę wiele rzeczy zrozumiałem i jeszcze ciągle się ich uczę, mimo braku wolnego czasu.<br /></div><br />Mirka książki są super, ale wskaźniki są równie dobrze (a nawet lepiej!) wyłożone w Symfonii C++ Grębosza. Nie mów, że nie znasz tej pozycji po przejściach z JT. <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br /><div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Problem u mnie polega na tym, ze deklaruję &quot;tykanie przerwaniowe systemu&quot; z częstotliwością 100Hz czyli 10ms. A wpisując stałą 500 zdjęcia powinny się zmieniać co 5sek a zmieniają sie co 1sek. ?? WTF?<br /></div><br />A preskaler dla timera masz dobrze ustawiony? Wyliczone wszystko z uwzględnieniem twojego kwarcu i wszystko się zgadza?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 9 cze 2013, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-09T15:10:26+01:00</updated>
<published>2013-06-09T15:10:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38804#p38804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38804#p38804"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38804#p38804"><![CDATA[
Co do twojej wypowiedzi zgadzam się w 100%, suma sumarum zawiodłem się na uczelni i niestety ocenę końcową dostaje ode mnie negatywną. Żeby się tak męczyć z niektórymi przedmiotami (czyt. JT) to trochę przegięcie. Ale było, minęło, ważne, że udało się dotrwać do tego inż. Wracając do tematu wskaźników nigdy nie darzyłem ich sympatią. Jednak po raz kolejny muszę pochwalić Mirka i jego książki, bo naprawdę wiele rzeczy zrozumiałem i jeszcze ciągle się ich uczę, mimo braku wolnego czasu. Czasami mam wrażenie, że więcej się nauczyłem w domu z tych książek niż na uczelni odnośnie programowania ;P ale to moja subiektywna ocena. Co do twojego pseudo-kodu obsługi wyświetlacza uważam, że jest OK i ja też korzystam normalnie z podobnego, jednak w tym przypadku potrzebuję wejścia powiedzmy w &quot;systemy czasu rzeczywistego&quot; czyli tzw&quot;timery programowe&quot; i obsługa wielu zdarzeń jednocześnie, bez użycia żadnych blokad typu &quot;delay&quot;. Wiec pętla while() jest ok. Co do ciała przerwania też uważam, że mój kod jest OK, ponieważ używam kilku timerów sprzętowych i tam jest fajny mechanizm zliczania. Problem u mnie polega na tym, ze deklaruję &quot;tykanie przerwaniowe systemu&quot; z częstotliwością 100Hz czyli 10ms. A wpisując stałą 500 zdjęcia powinny się zmieniać co 5sek a zmieniają sie co 1sek. ?? WTF?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 cze 2013, o 15:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-06-08T21:45:53+01:00</updated>
<published>2013-06-08T21:45:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38761#p38761</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38761#p38761"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38761#p38761"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Witam Lexmarka, czy ty jesteś wszędzie? heh;P<br /></div><br />Wszędzie nie. Ale w wielu miejscach tak. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />BTW: znasz może odpowiedź na moje powyższe pytanie, męczę się trochę z tymi timerami sprzętowymi.?<br /></div><br />Nie czytałem wątku, postaram się prześledzić i jak będę wiedział to odpowiem. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />PS. gratuluję wytrwałości na uczelni, osobiście nie wytrzymałem tej &quot;chorej&quot; atmosfery i nie było mowy o mgr, może za rok ;P<br /></div><br />Dzięki. Magisterka to z rozpędu. Niby tylko 1,5 roku, ale jeszcze praca mgr i wyjdzie 2 lata... Rysa na psychice została, ale cóż, na magisterce pomimo wielu przedmiotów do kitu (matematyka na 4 roku?) to były przedmioty też ciekawe i dobrze prowadzone. Zwłaszcza specjalnościowe. Atmosfera faktycznie na naszym wydziale nieciekawa, zwłaszcza po zmianie władz dziekańskich nastawionych do studenta o 180* inaczej niż poprzednia władza... Podam przykład, poprzedni rocznik mógł zapłacić 1000zł i przedłużyć obronę o rok. Od naszego rocznika trzeba wznawiać już cały semestr...  No ale cóż, dobrze, że już koniec prawie... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Sam siebie podziwiam że po słabym technikum rzuciłem się na głęboką wodę i nie utonąłem (matematyka, fizyka, programowanie itp.).<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br /><div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />wielkie dzięki za wytłumaczenie kolego Krauser, jestem na etapie bluebook'a i powoli wchodze we wskaźniki więc czasami po prostu nie wiem jak ich użyć. Teraz do szczęścia potrzebuję tylko wytłumaczenia jak użyć tej tablicy jako parametr funkcji.<br /></div><br />No nie gadaj, wskaźnikami przecież Jurek na EiT męczył. Tutaj to przecież te same wskaźniki, nie żadne &quot;inteligentne wskaźniki&quot; z C# czy C++0x <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />Na mój gust źle obslugujesz tego LCD.<br /><br />Ja robię tak (z powodzeniem). Pseudo-kod:<br /><br />[syntax=c]while(1)<br />{<br /><br />   if(dotyk == TRUE)<br />   {<br />         x = ?<br />         y = ?<br /><br />         if(x &lt; XYZ &amp;&amp; x &gt; ABC &amp;&amp; y &lt; GHD &amp;&amp; y &gt; HFU)   // literki - dowolne stałe, x od 0 do 319, y od 0 do 239<br />         {<br />            coś tam<br />         }<br />         else if(x &lt; XYZ1 &amp;&amp; x &gt; ABC1 &amp;&amp; y &lt; GHD1 &amp;&amp; y &gt; HFU1)<br />         {<br />           coś tam2<br />         }<br />         else if(...)<br />         {<br />          coś tam3<br />         }<br />      }<br />   else<br />   {<br />       // inne rzeczy, nie zwiazane z dotykiem<br />   }<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 29 minutach ]</span></strong><br /><br /><div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />[syntax=c]ISR(TIMER2_COMP_vect)<br />{<br />        uint16_t n;<br />        n = timer1;             /* 100Hz timer1 */<br />        if (n) timer1 = --n;<br />        n = timer2;             /* 100Hz timer2 */<br />        if (n) timer2 = --n;<br />}[/syntax]<br /></div><br />To jest całkowicie źle.<br />Powinno być:<br />[syntax=c]ISR(TIMER2_COMP_vect)<br />{<br />      static uint16_t cnt;<br />      <br />      timer1 = cnt;<br />      cnt++;<br />}[/syntax]<br /><br />Więcej nie trzeba. Przejrzyj rozdział o programowym PWM-ie w blue booku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 8 cze 2013, o 21:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-08T21:16:05+01:00</updated>
<published>2013-06-08T21:16:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38759#p38759</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38759#p38759"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38759#p38759"><![CDATA[
Witam Lexmarka, czy ty jesteś wszędzie? heh;P<br /><br />Co do projektu, to nie jest to ani mgr ani inż tylko projekt domowy w celu wykorzystania wyświetlacza i modułów, którymi jestem zafascynowany.<br />Jeszcze nie dawno na inżynierce także prezentowałem ten wyświetlacz w roli symulatora ramek GPS/APRS, który sprawdził się w 100%. Obecnie w zaciszu domowym projektuję sobie mini-urządzenie, na którym siedzi moduł kart microSD oraz konwerter USB/RS232. Urządzenie będzie miało własny &quot;system&quot; w którym będzie działać odczyt temp,czasu, ramka zdjęciowa oraz odtwarzacz plików wav. Oprócz tego urządzenie łączy się z PC na którym będzie siedział sobie program do ustawień, synchronizacji oraz datalogger temp.(ten ostatni już działa)<br /><br />BTW: znasz może odpowiedź na moje powyższe pytanie, męczę się trochę z tymi timerami sprzętowymi.?<br />PS. gratuluję wytrwałości na uczelni, osobiście nie wytrzymałem tej &quot;chorej&quot; atmosfery i nie było mowy o mgr, może za rok ;P<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 8 cze 2013, o 21:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-06-08T19:43:47+01:00</updated>
<published>2013-06-08T19:43:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38752#p38752</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38752#p38752"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38752#p38752"><![CDATA[
Witam kolegę z uczelni (i wydziału i kierunku). <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Lex z 5 roku się kłania. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Robisz jakiś projekt na tym LCD? Typu inżynierka, magisterka itp?<br />Jak chcesz robić mgr to ja robię mgr u dr inż. M. Maćkowskiego z KSTiO sterownik komory termicznej właśnie z tymi wyświetlaczami.<br />Mógłbyś rozwinąć dalej projekt np. dodać dataloggera na karcie pamięci czy wykresy na LCD. Albo dorobić współpracę modułu z PC. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Jak jesteś zainteresowany pisz na prv albo gg, podeślę szczegóły. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 8 cze 2013, o 19:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-08T15:52:57+01:00</updated>
<published>2013-06-08T15:52:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38747#p38747</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38747#p38747"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38747#p38747"><![CDATA[
faktycznie miałem błąd, z pośpiechu pewnie, poprawiłem to i dalej nie działa jak należy, chociaż opóźnienie wynosi już teraz około 1sek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 8 cze 2013, o 15:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-08T15:39:44+01:00</updated>
<published>2013-06-08T15:39:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38746#p38746</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38746#p38746"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38746#p38746"><![CDATA[
zobacz co ty wyprawaiasz:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">volatile uint16_t Timer1 ....</div><br /><br />a w przerwaniu i w kodzie<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">n = timer1; <br /><br />timer1 = 500;</div><br /><br />albo<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if(!Timer1)</div><br /><br />czy na prawdę pomijasz takie podstawy jak to że dla kompilatora <strong><span style="color: #FF0000">T</span>imer1</strong> to CAŁKIEM co innego niż <strong><span style="color: #FF0000">t</span>imer1 </strong>? .... zresztą ten kod nie powinien się kompilować bez błędów ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 cze 2013, o 15:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-08T14:20:11+01:00</updated>
<published>2013-06-08T14:20:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38742#p38742</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38742#p38742"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38742#p38742"><![CDATA[
dziękuję bardzo Mirku i Krauser za pomoc i wytłumaczenie, przeczytałem rozdział w książce i zaczynam coś z tego rozumieć. Napisałem kod i już wszystko prawie działa, tzn. mam problem ze zliczaniem 5sek. Mimo, że użyłem timerów 16-bitowych i dałem wartość 500 co daje 500 x 10ms = 5000ms czyli 5s. Program mam testowy przewijam w pętli 2 zdjęcia i przeskakują one cały czas bez żadnej przerwy.<br />Co jest nie tak?<br /><br />[syntax=c]// zmienne - timery programowe<br />volatile uint16_t Timer1, Timer2;<br /><br />int main(void)<br />{<br />       TCCR2 |= (1&lt;&lt;WGM21);// tryb pracy CTC<br />       TCCR2 |= (1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20);   // preskaler 1024<br />       OCR2 = 108;    // przerwanie porównania co 10ms (~100Hz)<br />       TIMSK = (1&lt;&lt;OCIE2); // odblokowanie przerwania CompareMatch<br />}<br /><br />void photo(void)<br />{<br />set_frame_adr(SSDXBUF3);// photo<br />int i=0;<br />while(i&lt;2)<br />{<br /><br />   if(!Timer1)<br />   {<br />   timer1 = 500;<br />   frame_ptr=SSDXBUF3;<br />   tft_bitmap_from_file( -1, -1, strcpy_P(buf,(const char *)pgm_read_word(&amp;tablica&#91;i&#93;)), NULL );<br />   //set_frame_adr(SSDXBUF1);// photo<br />   i++;<br />   if(i==2)i=0;<br />   }<br />   if(!Timer2)<br />   {<br />   timer2 = 5;<br />                           if( st_intX_flag ) // wyjscie do glownego menu<br />                  {<br />                                 int x=TP_X, y=TP_Y;<br />                         if( x&gt;120 &amp;&amp; x&lt;189 &amp;&amp; y&gt;90 &amp;&amp; y&lt;150 )<br />                         {<br />                         st_intX_flag=0;<br />                         menu_0();<br />                         }<br />                 }<br />   }<br />}<br />}<br /><br />ISR(TIMER2_COMP_vect)<br />{<br />        uint16_t n;<br />        n = timer1;             /* 100Hz timer1 */<br />        if (n) timer1 = --n;<br />        n = timer2;             /* 100Hz timer2 */<br />        if (n) timer2 = --n;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 8 cze 2013, o 14:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-07T20:20:37+01:00</updated>
<published>2013-06-07T20:20:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38717#p38717</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38717#p38717"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38717#p38717"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Nie da się tego zrobić na funkcji `_delay_ms()`<br /></div><br />Oczywiście, że się da wystarczy wiedzieć, że 1s to 10*100ms i nie używać wcale w pętli <em>_delay_ms(1000);</em> tylko <em>_delay_ms(100);</em><br />Wartości 5 i 50 wynikają oczywiście z tego, że mnożysz 5*10ms i 50*10ms, a dlatego 5 i 50, bo mówiłem o okresie czyli np. 50ms LED świeci i kolejne 50ms jest zgaszony co daje razem 100ms.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 7 cze 2013, o 20:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-07T12:05:38+01:00</updated>
<published>2013-06-07T12:05:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38691#p38691</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38691#p38691"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38691#p38691"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Także, chyba już wiem kiedy użyć tych timerów, lecz zastanawiam się co oznaczają te wartości 5 i 50. Bo timer ma taktowanie 100Hz czyli jeden cykl 0.01s. Skad dostajesz wartości 0,1 i 1s?<br /></div><br /><br />na prawdę dziwię się, że tak się męczysz <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> i męczysz .... zamiast wziąć i raz przeczytać w książce - no przecież ją masz .... czy mam ci dokładnie stronę pokazać ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> proszę strona 407 .... to AKURAT odpowiedź na to twoje pytanie<br /><br />no ale musi ci się chcieć przeczytać ten cały rozdział i zrobić ćwiczenie .... bo inaczej to będziesz jeszcze się długo tak męczył <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 cze 2013, o 12:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-07T08:54:34+01:00</updated>
<published>2013-06-07T08:54:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38672#p38672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38672#p38672"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38672#p38672"><![CDATA[
Nie da się tego zrobić na funkcji `_delay_ms()` ponieważ zawsze jedna dioda będzie czekała na opóźnienie drugiej diody tak jak to wygląda w kodzie poniżej. Dobrze rozumiem?<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#define TOG_LED1   PORTB^=(1&lt;&lt;PB0)<br />#define TOG_LED2   PORTB^=(1&lt;&lt;PB1)<br />   while(1)<br />   {<br />         _delay_ms(100);<br />         TOG_LED1;<br />         _delay_ms(1000);<br />         TOG_LED2;<br />      }<br />   }<br />   return 0;<br />}<br />}[/syntax]<br /><br />Także, chyba już wiem kiedy użyć tych timerów, lecz zastanawiam się co oznaczają te wartości 5 i 50. Bo timer ma taktowanie 100Hz czyli jeden cykl 0.01s. Skad dostajesz wartości 0,1 i 1s?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 7 cze 2013, o 08:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-06T22:14:57+01:00</updated>
<published>2013-06-06T22:14:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38660#p38660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38660#p38660"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38660#p38660"><![CDATA[
Zacznij od prostego przykładu z miganiem dwiema LEDami z różnym okresem np. jedną co 0,1s, a drugą co 1s. Jakbyś to zrobił na funkcji _delay_ms ?<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#define TOG_LED1   PORTB^=(1&lt;&lt;PB0)<br />#define TOG_LED2   PORTB^=(1&lt;&lt;PB1)<br /><br />volatile uint8_t timer1 = 5, timer2 = 50;<br />int main(void)<br />{<br />   OCR0A = F_CPU/100/1024; //~100Hz <br />   TCCR0A |= (1&lt;&lt;WGM01); //CTC mode<br />   TCCR0B |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00); //preskaler 1024<br />   TIMSK0 |= (1&lt;&lt;OCIE0A); //odblokowanie przerwania <br />   sei(); //globalne zezwolenie na przerwania<br />   while(1)<br />   {<br />      if(0==timer1)<br />      {<br />         timer1 = 5;<br />         TOG_LED1;<br />      }<br />      if(0==timer2)<br />      {<br />         timer2 = 50;<br />         TOG_LED2;<br />      }<br />   }<br />   return 0;<br />}<br /><br />ISR(TIMER0_COMPA_vect)                                  // ciało funkcji przerwania dla timera<br />{<br />   uint8_t n;<br />   n = timer1;             /* 100Hz timer1 */<br />   if (n) timer1 = --n;<br />   n = timer2;             /* 100Hz timer2 */<br />   if (n) timer2 = --n;<br />}[/syntax]<br />Musisz zrozumieć całość to łatwo przeniesiesz to na swój program.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 6 cze 2013, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-06T18:16:57+01:00</updated>
<published>2013-06-06T18:16:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38650#p38650</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38650#p38650"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38650#p38650"><![CDATA[
Domyślam się, że tutaj tylko timery pomogą, nie doczytałem jednak jeszcze rozdziału z bluebooka odnośnie &quot;systemu czasu rzeczywistego&quot; gdzie opisujesz mechanizm timerów. Nie rozumiem też dokładnie jak one działaja i jak ich użyć, teorii trochę jest ale gorzej z praktyką. Poniżej przedstawiam moje wypociny na podstawie najnowszego projektu Krausera &quot;Droid ATB&quot; oraz &quot;bluebook&quot;, proszę o pomoc i ewentualnie wytłumaczenie jak to ugryźć. Będę bardzo wdzięczny <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]volatile uint8_t timer1 = 5;            // tworzenie zmiennych na potrzeby timera<br />    volatile uint8_t time_flag;             // zmienna dla timera dla zliczania czasu?<br /><br />    OCR0A = F_CPU/100/1024; //~100Hz           // ustawienie rejestrów przerwania na taktowanie 100Hz<br />    TCCR0A |= (1&lt;&lt;WGM01);<br />    TCCR0B |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00);<br />    TIMSK0 |= (1&lt;&lt;OCIE0A);<br /><br />    const char wall01&#91;&#93; PROGMEM = &quot;wall01.rg8&quot;;<br />    const char wall02&#91;&#93; PROGMEM = &quot;wall02.rg8&quot;;<br />     <br />    const char * const tablica &#91;&#93; PROGMEM = {<br />                    wall01,<br />                    wall02,<br />    };<br />    enum {wall01idx, wall02idx}; //indeksy tablicy<br />    char buf&#91;13&#93;; //bufor na nazwę pliku w pamięci ram<br />     <br />     <br />ISR(TIMER0_COMPA_vect)                                  // ciało funkcji przerwania dla timera<br />{<br />        uint8_t n;<br />        n = timer1;             /* 100Hz timer1 */<br />        if (n) timer1 = --n;<br />}<br /> <br />#if USE_IRQ_NR != 1<br />ISR(INT1_vect)                                                // ciało funkcji przerwania na potrzeby zliczania czasu ??<br />{<br />        time_flag = 1;<br />}<br />#endif<br /><br /><br />// teraz w mojej funkcji jedynie co przychodzi mi do głowy to dać pętle (if) od zmiennej (timer1), ale co dokładnie wrzuć w tą pętle a co poza nią to już mam problem...<br /><br />    void photo(void)<br />    {<br />            set_frame_adr(SSDXBUF3);// photo<br />            for(int i=0;i&lt;2;i++)<br />            {<br />                           frame_ptr=SSDXBUF3;<br />                           tft_bitmap_from_file( -1, -1, strcpy_P(buf,(const char *)pgm_read_word(&amp;tablica&#91;i&#93;)), NULL );<br />                           //set_frame_adr(SSDXBUF3);// photo<br />                           _delay_ms(5000);<br />                           if( st_intX_flag )                               // wyjscie do glownego menu<br />                                    {<br />                                            int x=TP_X, y=TP_Y;<br />                                        if( x&gt;120 &amp;&amp; x&lt;189 &amp;&amp; y&gt;90 &amp;&amp; y&lt;150 )<br />                                        {<br />                                            st_intX_flag=0;<br />                                            menu_0();<br />                                        }<br />                                      }<br />            }<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 6 cze 2013, o 18:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-06T08:24:50+01:00</updated>
<published>2013-06-06T08:24:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38614#p38614</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38614#p38614"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38614#p38614"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Jesteśmy jednak w tym przypadku uzależnieni od opóźnienia wczytywania lub tak jak w moim przypadku funkcji &quot;deley&quot; ?<br /></div><br /><br />to się uniezależnijcie od &quot;deley&quot; .... toż to jest CLUE jednej i drugiej książki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> na prawdę - dotknij timerów programowych<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2013, o 08:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-05T22:46:53+01:00</updated>
<published>2013-06-05T22:46:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38611#p38611</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38611#p38611"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38611#p38611"><![CDATA[
dzięki wielkie teraz już wszystko jasne, ale powiem szczerze, że pobieranie adresu w tym przypadku nie jest rzeczą prostą i czytelną dla początkującego, choć bardzo, bardzo przydatną. <br />Ok, wiec ostatecznie puszczę sobie w pętli zdjęcia:<br />[syntax=c]const char wall01&#91;&#93; PROGMEM = &quot;wall01.rg8&quot;;<br />const char wall02&#91;&#93; PROGMEM = &quot;wall02.rg8&quot;;<br /><br />const char * const tablica &#91;&#93; PROGMEM = {<br />                wall01,<br />                wall02,<br />};<br />enum {wall01idx, wall02idx}; //indeksy tablicy<br />char buf&#91;13&#93;; //bufor na nazwę pliku w pamięci ram<br /><br /><br />void photo(void)<br />{<br />set_frame_adr(SSDXBUF3);// photo<br />        for(int i=0;i&lt;2;i++)<br />{<br />               frame_ptr=SSDXBUF3;<br />               tft_bitmap_from_file( -1, -1, strcpy_P(buf,(const char *)pgm_read_word(&amp;tablica&#91;i&#93;)), NULL );<br />               //set_frame_adr(SSDXBUF3);// photo<br />               _delay_ms(5000);<br />               if( st_intX_flag ) // wyjscie do glownego menu<br />               {<br />               int x=TP_X, y=TP_Y;<br />                   if( x&gt;120 &amp;&amp; x&lt;189 &amp;&amp; y&gt;90 &amp;&amp; y&lt;150 )<br />                   {<br />                   st_intX_flag=0;<br />                   menu_0();<br />                   }<br />                 }<br />}<br />}[/syntax]<br />wszystko już sprawdzone, działa więc wielkie dzięki! Mam tylko jeszcze jedno pytanie, bo tak jak napisałem na początku chciałbym, żeby można była w momencie wyświetlania zdjęcia wyjść do głównego menu. W momencie kiedy używam nieszczęsnego &quot;deley'a&quot; jestem zmuszony odczekać np.&quot;5sek&quot; nawet jeśli dotknę ekran. Czy jest na to jakiś inny sposób, żeby nie czekać tego czasu?<br />Mirek napisał że nie trzeba żadnych przerwań a zatrzymać można wczytywanie do bufora ram w dowolnym momencie. Jesteśmy jednak w tym przypadku uzależnieni od opóźnienia wczytywania lub tak jak w moim przypadku funkcji &quot;deley&quot; ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 5 cze 2013, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-05T22:08:32+01:00</updated>
<published>2013-06-05T22:08:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38609#p38609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38609#p38609"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38609#p38609"><![CDATA[
A no właśnie aby użyć tego w twoim programie należy:<br />[syntax=c]enum {wall01idx, wall02idx, wall03idx, wall04idx}; //indeksy tablicy<br />char buf&#91;13&#93;; //bufor na nazwę pliku w pamięci RAM<br />tft_bitmap_from_file( -1, -1, strcpy_P(buf,(const char *)pgm_read_word(&amp;tablica&#91;wall01idx&#93;)), &amp;DefaultFontInfo ); //od tyłu mamy pobranie adresu elementu z tablicy, element z tablicy służy do znalezienia wskaźnika w pamięci programu, następnie napis jest kopiowany z falsh do pamięci RAM do napisu buf i ostatecznie użyty jako argument funkcji tft_bitmap_from_file.[/syntax]<br />Jak nie będziesz korzystał z tablicy, a chcesz zaoszczędzić pamięci RAM wówczas robisz po prostu tak:<br />[syntax=c]char buf&#91;13&#93;; //bufor na nazwę pliku w pamięci RAM<br />tft_bitmap_from_file(-1,-1, strcpy_P(buf,PSTR(&quot;wall01.rg8&quot;), &amp;DefaultFontInfo);<br />tft_bitmap_from_file(-1,-1, strcpy_P(buf,PSTR(&quot;wall02.rg8&quot;), &amp;DefaultFontInfo);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 5 cze 2013, o 22:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-05T21:49:54+01:00</updated>
<published>2013-06-05T21:49:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38608#p38608</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38608#p38608"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38608#p38608"><![CDATA[
wielkie dzięki za wytłumaczenie kolego Krauser, jestem na etapie bluebook'a i powoli wchodze we wskaźniki więc czasami po prostu nie wiem jak ich użyć. Teraz do szczęścia potrzebuję tylko wytłumaczenia jak użyć tej tablicy jako parametr funkcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 5 cze 2013, o 21:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-05T21:39:35+01:00</updated>
<published>2013-06-05T21:39:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38606#p38606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38606#p38606"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38606#p38606"><![CDATA[
Jak zdefiniujesz sobie taką tablicę i obejrzysz użycie pamięci RAM po kompilacji to okaże się, że napisy również są w tej pamięci. Należy najpierw umieścić każdy napis w pamięci programu (flash), a potem dodatkowo umieścić wskaźniki do tych napisów w tablicy również w pamięci programu:<br />[syntax=c]const char wall01&#91;&#93; PROGMEM = &quot;wall01.rg8&quot;;<br />const char wall02&#91;&#93; PROGMEM = &quot;wall02.rg8&quot;;<br />const char wall03&#91;&#93; PROGMEM = &quot;wall03.rg8&quot;;<br />const char wall04&#91;&#93; PROGMEM = &quot;wall04.rg8&quot;;<br /><br />const char * const tablica &#91;&#93; PROGMEM = {<br />wall01,<br />wall02,<br />wall03,<br />wall04,<br />};[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 5 cze 2013, o 21:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-05T20:47:41+01:00</updated>
<published>2013-06-05T20:47:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38603#p38603</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38603#p38603"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38603#p38603"><![CDATA[
No z tablicami mam niestety braki więc wolałem się zapytać doświadczonych, chociaż wiem, że poleciałem na łatwiznę. Z tego co doczytałem to:<br /><br />[syntax=c]char tablica &#91;&#93;&#91;13&#93; PROGMEM = {<br />{&quot;wall01.rg8&quot;},<br />{&quot;wall02.rg8},<br />{&quot;wall03.rg8&quot;},<br />        {&quot;wall04.rg8&quot;},<br />};[/syntax]<br /><br />a jak się teraz odwołać do tych nazw jako parametr funkcji? potrzebuję wskaźników?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 5 cze 2013, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-05T20:37:19+01:00</updated>
<published>2013-06-05T20:37:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38602#p38602</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38602#p38602"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38602#p38602"><![CDATA[
czasem zanim zapytasz - to spróbuj skompilować <br /><br />[syntax=c]char PROGMEM tablica&#91;4&#93; = {&quot;wall01.rg8&quot;,&quot;wall02.rg8&quot;,&quot;wall03.rg8&quot;,&quot;wall04.rg8&quot;};[/syntax]<br /><br />co to jest wg ciebie ? to nie ma racji bytu<br /><br />GreenBook i zajrzyj np do ostatniego rozdziału na temat RS232 i komend AT - zobacz jak są przechowywane<br /><br />albo nazwy fontów przy wyświetlacu TFT GLCD<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 cze 2013, o 20:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-05T20:24:16+01:00</updated>
<published>2013-06-05T20:24:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38601#p38601</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38601#p38601"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38601#p38601"><![CDATA[
Mirku oczywiście, że nie wyświetlałbym tego jedno po drugim nawet jakby było ich tylko 5, bez przesady. Dlatego zadałem pytanie na forum jaki &quot;mechanizm&quot; tu zastosować. Oczywiście, że o pętli pomyślałem od razu jednak tak jak napisałem wyżej nie wiedziałem jak zmieniać te nazwy stringowe. I tu właśnie potrzebowałem takie CUŚ jak tablica znaków. Dzięki za przypomnienie. Czy mógłbym prosić jeszcze o jakiś najprostszy przykład jak to miałoby wyglądać, bo zastanawiam się jak wrzucić tablicę jako parametr: Czy to może tak wyglądać?<br /><br />[syntax=c]char PROGMEM tablica&#91;4&#93; = {&quot;wall01.rg8&quot;,&quot;wall02.rg8&quot;,&quot;wall03.rg8&quot;,&quot;wall04.rg8&quot;};<br /><br />for (int i=0,i&gt;4;i++)<br />{<br />                tablica&#91;i&#93;;<br />                frame_ptr=SSDXBUF1;<br />                tft_bitmap_from_file(-1,-1, tablica&#91;i&#93;, &amp;DefaultFontInfo);<br />                set_frame_adr(SSDXBUF3);// photo<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 5 cze 2013, o 20:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-05T19:47:20+01:00</updated>
<published>2013-06-05T19:47:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38597#p38597</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38597#p38597"/>
<title type="html"><![CDATA[Re: Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38597#p38597"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Jednak czy da się to napisać inaczej niż kopiować tysiąc if'ów jeśli miałbym więcej zdjęć.<br /></div><br /><br />Zaraz zaraz .... a kolega zna takie mechanizmy jak pętle ? tablice itp ??? bo czegoś tu nie rozumiem ? Na prawdę jakbyś miał tysiąc zdjęć to tak byś je wyświetlał ? jedno po drugim w pętli głównej ?<br /><br />jakie przerwania ? jakie flagi z przerwań ? .... <br /><br />tablica nazw plików i odtwarzanie ich w pętli .... <br /><br />jedna pętla , kilka linijek kodu i można nawet 5 tysięcy zdjęć wyświetlać, a przerywać wczytywanie do bufora ram w dowolnym momencie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 cze 2013, o 19:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-06-05T19:32:36+01:00</updated>
<published>2013-06-05T19:32:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38596#p38596</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38596#p38596"/>
<title type="html"><![CDATA[Problem z ramką zdjęć LCD TFT 3.5'']]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3268&amp;p=38596#p38596"><![CDATA[
Witam, <br />jestem w trakcie pisania i konstruowania własnego mini-systemu na LCD 3.5''. Stanąłem na funkcjonalności ramki do zdjęć. Mianowicie chcę aby przy wybraniu odpowiedniego &quot;miejsca&quot; na wyświetlaczy wyświetliło się (wcześniej) załadowane pierwsze zdjęcie i aby następne uruchamiały się np. co 3sek. (w momencie wyświetlania pierwszego kolejno wczytywały by się w tle). Mam jednak problem bo chciałbym także, żeby dało się w każdym momencie przerwać automatyczne wyświetlanie tapet i powrócić do głównego menu. Póki co naskrobałem coś takiego:<br /><br />[syntax=c]void photo_display(void)<br />{<br />set_frame_adr(SSDXBUF3); // first photo<br />while(1)<br />{<br />frame_ptr=SSDXBUF1;<br />tft_bitmap_from_file(-1,-1, &quot;wall01.rg8&quot;, &amp;DefaultFontInfo);<br />set_frame_adr(SSDXBUF3);// photo<br />frame_ptr=SSDXBUF3;<br />tft_bitmap_from_file(-1,-1, &quot;wall02.rg8&quot;, &amp;DefaultFontInfo);<br />set_frame_adr(SSDXBUF3);// photo<br />frame_ptr=SSDXBUF1;<br />tft_bitmap_from_file(-1,-1, &quot;wall03.rg8&quot;, &amp;DefaultFontInfo);<br />set_frame_adr(SSDXBUF3);// photo<br />frame_ptr=SSDXBUF3;<br />tft_bitmap_from_file(-1,-1, &quot;wall04.rg8&quot;, &amp;DefaultFontInfo);<br />set_frame_adr(SSDXBUF3);// photo<br />frame_ptr=SSDXBUF1;<br />tft_bitmap_from_file(-1,-1, &quot;wall05.rg8&quot;, &amp;DefaultFontInfo);<br />set_frame_adr(SSDXBUF3);// photo<br />frame_ptr=SSDXBUF3;<br />tft_bitmap_from_file(-1,-1, &quot;wall06.rg8&quot;, &amp;DefaultFontInfo);<br />set_frame_adr(SSDXBUF3);// photo<br /><br />if( st_intX_flag ) // wyjscie do glownego menu<br />{<br />int x=TP_X, y=TP_Y;<br />    if( x&gt;120 &amp;&amp; x&lt;189 &amp;&amp; y&gt;90 &amp;&amp; y&lt;150 )<br />    {<br />    st_intX_flag=0;<br />    menu_0();<br />    }<br />  }<br />}<br />}[/syntax]<br /><br />Hmm.. według mojego rozumowania należy np. po każdym wczytaniu zdjęcia sprawdzać flagę od panelu dotykowego (st_intX_flag) i jeśli jest 0 to wyświetlanie trwa dalej. Jednak czy da się to napisać inaczej niż kopiować tysiąc if'ów jeśli miałbym więcej zdjęć. Może trzeba uruchomić jakieś przerwania w tle? ale nie wiem jak się za to zabrać i poprawnie napisać, żeby działało poprawnie i po ludzku. Drugi pomysł to dać w pętli nazwę, która by się zwiększała np. wall01 typu string i wpisywać ją w funkcję:(tam gdzie &quot;wall03.rgb&quot;)<br />[syntax=c]tft_bitmap_from_file(-1,-1, &quot;wall03.rg8&quot;, &amp;DefaultFontInfo);[/syntax] ale nie da się zmienić tego parametru funkcji w tej postaci typu string prawda?<br /><br />Z góry dzięki za pomoc.<br />Pozdrawiam,<br />Jacek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 5 cze 2013, o 19:32</p><hr />
]]></content>
</entry>
</feed>