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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-06-14T17:38:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=3231&amp;mode</id>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-06-14T17:38:49+01:00</updated>
<published>2013-06-14T17:38:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=39303#p39303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=39303#p39303"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=39303#p39303"><![CDATA[
Faktycznie, już poprawiłem w obu postach <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1326">Wielki</a> — 14 cze 2013, o 17:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LogTeam]]></name></author>
<updated>2013-06-13T09:40:26+01:00</updated>
<published>2013-06-13T09:40:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=39185#p39185</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=39185#p39185"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=39185#p39185"><![CDATA[
Nie zamiesciles chyba pliku makra.h Czy moglbys go pokazać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=738">LogTeam</a> — 13 cze 2013, o 09:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-06-05T20:02:07+01:00</updated>
<published>2013-06-05T20:02:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38599#p38599</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38599#p38599"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38599#p38599"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br />Musiał byś zmodyfikować część odpowiedzialną za wyświetlanie bolidu, gdyż jeżeli mamy nad albo pod bolidem przeszkodę i w tym momencie bolid przeskoczy na miejsce przeszkody to potem tego bolidu nie widać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /></div><br /><br />Niestety już nie mam pomysłu ani czasu na ten projekt <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />I dzięki koledze mamy filmik ! Wiem że nikt by samemu nie skopiował kodu i sprawdził jak działa więc cieszcie swe oczy o dzieciątka ! Zwróćcie uwagę na intro :]<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />Pozdrawiam <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=1326">Wielki</a> — 5 cze 2013, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-06-03T07:25:44+01:00</updated>
<published>2013-06-03T07:25:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38408#p38408</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38408#p38408"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38408#p38408"><![CDATA[
Przypomnij mi na PW, po 18, bo zostawiłem swój zestaw z Atmegą8 w domu, to nagram filma <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Właśnie się wrzuca wersja 2.0, sorki ale wcześniej nie dałem rady. Ha udało mi się osiągnąć wynik 39 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. <br />PS. Musiał byś zmodyfikować część odpowiedzialną za wyświetlanie bolidu, gdyż jeżeli mamy nad albo pod bolidem przeszkodę i w tym momencie bolid przeskoczy na miejsce przeszkody to potem tego bolidu nie widać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 3 cze 2013, o 07:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-06-14T17:38:25+01:00</updated>
<published>2013-06-02T22:55:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38401#p38401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38401#p38401"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38401#p38401"><![CDATA[
Z powodów technicznych filmu brak <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Niestety, ale i tak kod umieszczam i zapraszam do testów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Mój max to 38 Anty nie mógł więcej niż 35, ciekaw jestem czy komuś się uda <br /><br />standardowo main.c:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#include &quot;game.h&quot;<br /><br />volatile uint8_t s1_flag;/* flaga tyknięcia timera co 1 sekundę */<br />volatile uint8_t sekundy;/* licznik sekund 0-59 */<br /><br />int main(void){<br /><br />lcd_init();<br />key_init();<br />sei_init();<br />sei();<br />_delay_ms(10);<br />prolog();<br />_delay_ms(50);<br /><br />pokaz(0);<br /><br />while(game_start){<br />if( key_push() ){sterowanie();}<br />//_delay_ms(500);<br />if(s1_flag)<br />{<br />if(0==(sekundy%1))<br />{<br />przesun();<br />}<br />if(0==(sekundy%2))<br />{<br />nowa_przeszkoda();<br />}<br />s1_flag=0;<br />}<br /><br />}<br />epilog();<br />return 0;<br />}<br />ISR(TIMER0_OVF_vect)<br />{<br />static uint8_t cnt;/* statyczna zmienna cnt do odliczania setnych ms */<br />if(++cnt&gt;predkosc)//tu zaszla zmiana<br />{/* gdy licznik ms &gt; 9*/<br />s1_flag=1;/* ustaw flagę tyknięcia sekundy */<br />sekundy++;/* zwiększ licznik sekund */<br />if(sekundy&gt;59) sekundy=0; /* jeśli ilość sekund &gt; 59 - wyzeruj */<br />cnt=0;/* wyzeru licznik setnych ms */<br />}<br />TCNT0 = 178;//przeładowanie licznika<br />}[/syntax]<br /><br />game.h<br />[syntax=c]/*<br /> * game.h<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#ifndef GAME_H_<br />#define GAME_H_<br /><br />/*<br /> * HARDWARE<br /> */<br />#define PIN_KEY (1&lt;&lt;0)<br />#define DDRx_KEY DDRC<br />#define PORTx_KEY PORTC<br />#define PINx_KEY PINC<br /><br />volatile uint8_t game_start;<br /><br />volatile uint8_t predkosc;<br /><br />volatile uint8_t life;<br /><br />/*<br /> * FUNKCJE PROGRAMOWE<br /> */<br />void key_init(void); //inicjowanie przycisku<br /><br />uint8_t key_push(void); //jezeli przycisk zwolniony po nacisnieciu zwraca 1<br /><br />void pokaz(uint8_t x); //rysuje nasz bolid<br /><br />void rysuj(uint8_t y, uint8_t x); // rysuje przeszkodę w podanych linijkach/kolumnach<br /><br />void nowa_przeszkoda(void); //fukncja dodaje nowa przeszkode w 0,15 i 1,15<br /><br />void przesun(void); //przesuwa kazda z przeszkód o jedną w lewo<br /><br />uint8_t losuj(void); //losowanie jest straaasznie niedopracowane<br /><br />void sterowanie(void); //po nacisnieciu guzika bolid zmienia położenie góra dół<br /><br />void kolizja(uint8_t i); //bez komentarza ;)<br /><br />void przyspiesz(void); //zwieksza predkosc zaleznie od przejechanych przeszkod<br /><br />void lif(uint8_t life);<br /><br />void prolog(void);<br />void epilog(void);<br />/*<br /> * Inicjacje przerwań<br /> */<br />void sei_init(void);<br />#endif /* GAME_H_ */[/syntax]<br /><br />game.c<br />[syntax=c]*<br /> * game.c<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;game.h&quot;<br />#include &quot;makra.h&quot;<br /><br />uint8_t przeszkody_x&#91;16&#93;; //odpowiada za parametry przeszkody w wierszu 1<br />uint8_t przeszkody_y&#91;16&#93;; //odpowiada za lokalizację przeszkody w wierszu 2<br />uint8_t wynik;<br />uint8_t z=0;<br />uint8_t s=0;<br />uint8_t key_lock=0;<br />uint8_t chan_flag=0;<br /><br />unsigned int stan_poprzedni=1; //Przy inicjalizacji bedzie to 'seed'<br />const unsigned int a=22695, c=1;<br />uint16_t wiersz;<br /><br />//predkosc=50;<br /><br />/*<br /> * ciała funkcji<br /> */<br /><br /><br />void key_init(void)<br />{<br />DDRx_KEY &amp;= ~(PIN_KEY);<br />PORTx_KEY |= (PIN_KEY);<br />}<br />uint8_t key_push(void)<br />{<br />if( !key_lock &amp;&amp; !(PINx_KEY &amp; PIN_KEY) ) key_lock=1;<br /><br />else if( key_lock &amp;&amp; (PINx_KEY &amp; PIN_KEY ) )<br />  {<br />  if( !++key_lock )<br />  {<br />   // reakcja na PUSH_UP (zwolnienie przycisku)<br />   return 1;<br />  }<br />  }<br /> return 0;<br />}<br /><br />void pokaz(uint8_t x)<br />{<br />uint8_t pojazd&#91;&#93;={16,24,28,31,31,28,24,16};<br /><br />lcd_defchar(0x81, pojazd);<br />lcd_locate(x,1);<br />lcd_str(&quot;\x81&quot;);<br /><br />}<br />void rysuj(uint8_t y, uint8_t x)<br />{<br />uint8_t przeszkoda&#91;&#93;={31,31,31,31,31,31,31,31};<br />lcd_defchar(0x82, przeszkoda);<br />lcd_locate(y,x);<br />lcd_str(&quot;\x82&quot;);<br />}<br />void nowa_przeszkoda(void)<br />{<br />losuj();<br />wiersz=stan_poprzedni%2;<br />if(wiersz==1)<br />{<br />przeszkody_y&#91;z&#93;=15;<br />rysuj(1,15);<br />}<br />else if(wiersz==0)<br />{<br />przeszkody_x&#91;z&#93;=15;<br />rysuj(0,15);<br />}<br />++z;<br />if(z&gt;15)z=0;<br />}<br /><br />void przesun(void)<br />{<br />uint8_t i=0;<br />uint8_t kor_x, kor_y;<br />for(;i&lt;=15;++i)<br />{<br />kor_x=przeszkody_x&#91;i&#93;;<br />if(kor_x){<br />lcd_locate(0,kor_x);<br />lcd_str(&quot; &quot;);<br />--kor_x;<br />if(kor_x&gt;0){<br />rysuj(0,kor_x);<br />przeszkody_x&#91;i&#93;=kor_x;<br />kolizja(i);<br />}<br />else<br />{<br />przeszkody_x&#91;i&#93;=0;<br />wynik++;<br />przyspiesz();<br />}<br />}<br />kor_y=przeszkody_y&#91;i&#93;;<br />if(kor_y){<br />lcd_locate(1,kor_y);<br />lcd_str(&quot; &quot;);<br />--kor_y;<br />if(kor_y&gt;0){<br />rysuj(1,kor_y);<br />przeszkody_y&#91;i&#93;=kor_y;<br />kolizja(i);<br />}<br />else<br />{<br />przeszkody_y&#91;i&#93;=0;<br />wynik++;<br />przyspiesz();<br />}<br />}<br />}<br />}<br />void sterowanie(void)<br />{<br />if(s==0)<br />{<br />pokaz(1);<br />lcd_locate(0,1);<br />lcd_str(&quot; &quot;);<br />s=1;<br />}<br />else if(s==1){<br />pokaz(0);<br />lcd_locate(1,1);<br />lcd_str(&quot; &quot;);<br />s=0;<br />}<br /><br />}<br /><br />void kolizja(uint8_t i)<br />{<br />if((s==0) &amp; (przeszkody_x&#91;i&#93;==1))<br />{<br />if(--life&gt;0)<br />{<br />lif(life);<br />}<br />else game_start=0;<br />}<br /><br />else if((s==1) &amp; (przeszkody_y&#91;i&#93;==1))<br />{<br />if(--life&gt;0)<br />{<br />lif(life);<br />}<br />else game_start=0;<br /><br />}<br />}<br /><br />void przyspiesz(void)<br />{<br />if((wynik&gt;=5) &amp; (chan_flag==0)){<br />predkosc-=10;<br />chan_flag=1;<br />}<br />if((wynik&gt;=15) &amp; (chan_flag==1)){<br />predkosc-=10;<br />chan_flag=2;<br />}<br />if((wynik&gt;=25) &amp; (chan_flag==2)){<br />predkosc-=5;<br />chan_flag=3;<br />}<br />if((wynik&gt;=35) &amp; (chan_flag==3)){<br />predkosc-=5;<br />chan_flag=4;<br />}<br />if((wynik&gt;=45) &amp; (chan_flag==4)){<br />predkosc-=5;<br />}<br />}<br /><br />void lif(uint8_t l)<br />{<br />lcd_locate(0,0);<br />lcd_int(l);<br />}<br /><br />void epilog(void)<br />{<br />lcd_cls();<br />lcd_locate(0,2);<br />lcd_str(&quot; KONIEC GRY&quot;);<br />lcd_locate(1,7);<br />lcd_int(wynik);<br />}<br /><br />void prolog(void)<br />{<br />lcd_locate(0,0);<br />lcd_str(&quot;ATNELOWSKI BOLID&quot;);<br />lcd_locate(1,6);<br />lcd_str(&quot;2.0&quot;);<br />_delay_ms(1000);<br />lcd_cls();<br />lcd_locate(0,3);<br />lcd_str(&quot;ZACZYNAMY?&quot;);<br />lcd_locate(1,1);<br />lcd_str(&quot;WCISNIJ GUZIK!&quot;);<br />while(!key_push());<br />lcd_cls();<br />game_start=1;<br />predkosc=50;<br />life=3;<br />lif(life);<br />}<br /><br />uint8_t losuj(void)<br />{<br /> stan_poprzedni=(a*stan_poprzedni+c);<br /> return stan_poprzedni%257;<br />}<br />/*<br /> * inicjalizacja przerwań<br /> */<br />void sei_init(void)<br />{<br /> /*Przerywanie ok 10ms 100Hz*/<br />    /* Timer0 – inicjalizacja przerwania co 10ms */<br />    TCCR0   |= (1&lt;&lt;CS00)|(1&lt;&lt;CS02); // preskaler = 1024<br />    TCNT0   = 178;                                  // przerwanie porównania co 10ms (100Hz)<br />    TIMSK   |= (1&lt;&lt;TOIE0);                  // Odblokowanie przerwania OverFlow<br />}[/syntax]<br /><br />makra.h<br />[syntax=c]/*<br /> * makra.h<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#ifndef MAKRA_H_<br />#define MAKRA_H_<br /><br />// Makra upraszczające dostęp do portów<br />// *** PORT<br />#define PORT(x) SPORT(x)<br />#define SPORT(x) (PORT##x)<br />// *** PIN<br />#define PIN(x) SPIN(x)<br />#define SPIN(x) (PIN##x)<br />// *** DDR<br />#define DDR(x) SDDR(x)<br />#define SDDR(x) (DDR##x)<br /><br />#endif /* MAKRA_H_ */[/syntax]<br /><br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Ps. był bym niezmiernie ucieszony jeżeli ktoś by wrzucił tutaj nagrany swój wyczyn, bo od razu były by pokazane zmiany <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=1326">Wielki</a> — 2 cze 2013, o 22:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-06-01T03:40:43+01:00</updated>
<published>2013-06-01T03:40:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38219#p38219</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38219#p38219"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38219#p38219"><![CDATA[
Rez, filmik wyszedł idealnie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> wielkie dzięki!! <br /><br />A co do tego wyświetlacza, to osobiście jestem bardzo za tym żeby ktoś kto posiada taki przerobił kod na owy wyświetlacz, kod jest tak stworzony że za duzo problemów nie będzie z nim <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Poza tym wprowadziłem trochę usprawnień i uwaga tym razem doszedłem max do 38 klocka <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Na dowód zdjęcie!! <br /><img src="http://imageshack.us/a/img196/1367/dsc01834ph.jpg" alt="Obrazek" /><br /><br />Kodu na razie nie wrzucam, bo chce nagrać też filmik z działania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Myślę też że mogli byśmy zrobić &quot;konkurs&quot; kto przejdzie dalej, bo w sumie to po 20 klocku konkretne wyzwanie jest <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1326">Wielki</a> — 1 cze 2013, o 03:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-06-01T03:00:51+01:00</updated>
<published>2013-06-01T03:00:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38218#p38218</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38218#p38218"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38218#p38218"><![CDATA[
No mam nadzieje, że filmik spełnił oczekiwania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br />Gra to świetna baza rozwojowa, podoba mi się, przejrzystość kodu. Wystarczyło 5minut by go przenieść na ATB z przejściówką atmega8.<br /><br />PS. Wrzucił bym to na 4x16 bo nie wiem czy jeszcze pamiętacie, te ruskie i chińskie gierki z formułkami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. 3tory i obrazek F1 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, ależ to było grywalne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 1 cze 2013, o 03:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-05-31T23:35:56+01:00</updated>
<published>2013-05-31T23:35:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38216#p38216</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38216#p38216"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38216#p38216"><![CDATA[
zadziałało, mam już regulacje prędkości, co 5 klocków będzie szybciej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> po jakiś 20 klockach zasuwa na prawdę szybko <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />Teraz pracuje nad pewnym &quot;dodatkiem&quot; który podsunął mi p. Mirek <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Kto by pomyślał że taki niby głupi projekcik może tak wciągnać <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Aaa no i jest już wynik podawany na końcu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1326">Wielki</a> — 31 maja 2013, o 23:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-05-31T23:11:38+01:00</updated>
<published>2013-05-31T23:11:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38215#p38215</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38215#p38215"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38215#p38215"><![CDATA[
Czyli Wielki zadziałało w końcu? <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=823">janeczqu</a> — 31 maja 2013, o 23:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-05-31T22:05:41+01:00</updated>
<published>2013-05-31T22:05:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38212#p38212</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38212#p38212"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38212#p38212"><![CDATA[
To jakiś pre-order dla forumowiczów poproszę hihihi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 31 maja 2013, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-05-31T21:48:20+01:00</updated>
<published>2013-05-31T21:48:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38205#p38205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38205#p38205"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38205#p38205"><![CDATA[
A zapomniałem dodać: super pomysł i fajne wykonanie. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 31 maja 2013, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-05-31T21:48:13+01:00</updated>
<published>2013-05-31T21:48:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38204#p38204</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38204#p38204"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38204#p38204"><![CDATA[
<div class="quotetitle">Ledes napisał(a):</div><div class="quotecontent"><br />Po game over możesz wyświetlać statystyki. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Randoma możesz wziąć z ADC wiszącego w powietrzu. No i w miarę upływu czasu powinna gra przyspieszać aby było coraz trudniej. No i High scores. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Kurde to miał być projekt na 2 dni, ale widzę coraz większe możliwości.. Gdzieś tu widziałem menu <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> A co do przyśpieszania to nie wiem jak to zrobić... A co do wyników, to na razie jest za nudna żeby chciało się pograć więcej niż 10 minut.. Poza tym, mam nowy pomysł, może do jutra skrobnę jakiś dodatek do tej gry <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1326">Wielki</a> — 31 maja 2013, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-05-31T21:46:23+01:00</updated>
<published>2013-05-31T21:46:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38203#p38203</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38203#p38203"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38203#p38203"><![CDATA[
Po game over możesz wyświetlać statystyki. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Randoma możesz wziąć z ADC wiszącego w powietrzu. No i w miarę upływu czasu powinna gra przyspieszać aby było coraz trudniej. No i High scores. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 31 maja 2013, o 21:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-31T21:44:03+01:00</updated>
<published>2013-05-31T21:44:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38202#p38202</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38202#p38202"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38202#p38202"><![CDATA[
<div class="quotetitle">Wielki napisał(a):</div><div class="quotecontent"><br />ale taka gra była by wtedy jeszcze bardziej &quot;porywająca&quot;<br /></div><br /><br />hahaha no i o to chodzi - sam bym pograł żeby się odstresować <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 maja 2013, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-05-31T21:36:38+01:00</updated>
<published>2013-05-31T21:36:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38201#p38201</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38201#p38201"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38201#p38201"><![CDATA[
Zapomniałem dodać że jest tam funkcja &quot;losowania&quot; ale jest tak strasznie &quot;losowa&quot; że aż to w oczy kłuje <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> To jest do poprawki, poza tym myślałem nad jakimś licznikiem, w sumie to kilka dodatkowych linijek kodu a wyświetlać by je można było za bolidem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />albo i możliwość zestrzeliwania wroga <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />myślałem nad tym, w sumie to było pierwsze założenie, ale taka gra była by wtedy jeszcze bardziej &quot;porywająca&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1326">Wielki</a> — 31 maja 2013, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-31T21:34:36+01:00</updated>
<published>2013-05-31T21:34:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38200#p38200</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38200#p38200"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38200#p38200"><![CDATA[
albo i możliwość zestrzeliwania wroga <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a na poważnie to - jak na &quot;dopiero się uczę&quot; to zaawansowany fajny projekcik <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... prześlicznie się ćwiczy na takich pomysłach i to jeszcze dobrych pomysłach <br /><br />gratulacje<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 maja 2013, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2013-05-31T21:20:59+01:00</updated>
<published>2013-05-31T21:20:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38198#p38198</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38198#p38198"/>
<title type="html"><![CDATA[Re: Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38198#p38198"><![CDATA[
Proponuję dodanie zliczania ile minęło się prostokątów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 31 maja 2013, o 21:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wielki]]></name></author>
<updated>2013-06-14T17:37:42+01:00</updated>
<published>2013-05-31T21:10:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38196#p38196</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38196#p38196"/>
<title type="html"><![CDATA[Gra na wyświetlaczu 2x16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3231&amp;p=38196#p38196"><![CDATA[
Siemka, każdy z was na pewno widział kiedyś grę w której trzeba było pikselem unikać innych pikseli na &quot;drodze&quot;, jak dostałem wyświetlacz i udało mi się go uruchomić (jakiś dziki egzemplarz), wpadłem właśnie na pomysł takiej &quot;gry&quot;. Jeżeli chodzi o hardware to wszystko opiera się na ATmega8, wyświetlaczu 2x16 i jednym guziku. <br /><br />Sam pomysł wydaje się prosty i banalny i w rzeczywistości taki właśnie jest. Co i tak nie pozwoliło mi uniknąć wpadek i intensywnego myślenia, przerzucania kartek niebieskiej Biblii oraz zasypywania pytaniami kolegów z forum (za co ich przepraszam ale także dziękuje za udzieloną pomoc).<br /><br />Wracając, grę pisałem z zamiarem nauczenia się obsługi LCD, pisania własnych bibliotek i for fun <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Wszystko opiera się na 2 bibliotekach, game.h oraz game.c oraz mirkowej obsługi LCD. Tutaj zamieszczam tylko te 2 biblioteki, zainteresowani (jeżeli wgl tacy będą) sami skombinują sobie te od LCD lub przerobią moje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> W pliku game.h definiujemy tylko port guzika. <br /><br />main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#include &quot;game.h&quot;<br /><br />uint8_t czujniki_cnt;/* ilość czujników na magistrali */<br />volatile uint8_t s1_flag;/* flaga tyknięcia timera co 1 sekundę */<br />volatile uint8_t sekundy;/* licznik sekund 0-59 */<br /><br />int main(void){<br /><br />lcd_init();<br />key_init();<br />sei_init();<br /><br />sei();<br />_delay_ms(10);<br />prolog();<br />_delay_ms(50);<br />pokaz(0);<br />while(game_start){<br />if( key_push() ){sterowanie();}<br />//_delay_ms(500);<br />if(s1_flag)<br />{<br />if(0==(sekundy%1))<br />{<br />przesun();<br /><br />}<br />if(0==(sekundy%2))<br />{<br />nowa_przeszkoda();<br />}<br />s1_flag=0;<br />}<br /><br />}<br />epilog();<br />return 0;<br />}<br />ISR(TIMER0_OVF_vect)<br />{<br />static uint8_t cnt;/* statyczna zmienna cnt do odliczania setnych ms */<br />if(++cnt&gt;99)//tu zaszla zmiana<br />{/* gdy licznik ms &gt; 9 (minęła 1 sekunda) */<br />s1_flag=1;/* ustaw flagę tyknięcia sekundy */<br />sekundy++;/* zwiększ licznik sekund */<br />if(sekundy&gt;59) sekundy=0; /* jeśli ilość sekund &gt; 59 - wyzeruj */<br />cnt=0;/* wyzeru licznik setnych ms */<br />}<br />TCNT0 = 178;//przeładowanie licznika<br />}[/syntax]<br /><br />game.h<br />[syntax=c]/*<br /> * game.h<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#ifndef GAME_H_<br />#define GAME_H_<br /><br />/*<br /> * HARDWARE<br /> */<br />#define PIN_KEY (1&lt;&lt;0)<br />#define DDRx_KEY DDRC<br />#define PORTx_KEY PORTC<br />#define PINx_KEY PINC<br /><br />volatile uint8_t game_start;<br /><br />/*<br /> * FUNKCJE PROGRAMOWE<br /> */<br />void key_init(void); //inicjowanie przycisku<br />uint8_t key_push(void); //jezeli przycisk zwolniony po nacisnieciu zwraca 1<br />void pokaz(uint8_t x); //rysuje nasz bolid<br />void rysuj(uint8_t y, uint8_t x); // rysuje przeszkodę w podanych linijkach/kolumnach<br />void nowa_przeszkoda(void); //fukncja dodaje nowa przeszkode w 0,15 i 1,15<br />void przesun(void); //przesuwa kazda z przeszkód o jedną w lewo<br />uint8_t losuj(void); //losowanie jest straaasznie niedopracowane<br />void sterowanie(void); //po nacisnieciu guzika bolid zmienia położenie góra dół<br />void kolizja(uint8_t i); //bez komentarza ;)<br /><br />void prolog(void);<br />void epilog(void);<br />/*<br /> * Inicjacje przerwań<br /> */<br />void sei_init(void);<br />#endif /* GAME_H_ */[/syntax]<br /><br />game.c<br />[syntax=c]/*<br /> * game.c<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;game.h&quot;<br />#include &quot;makra.h&quot;<br /><br />uint8_t przeszkody_x&#91;16&#93;; //odpowiada za parametry przeszkody w wierszu 1<br />uint8_t przeszkody_y&#91;16&#93;; //odpowiada za lokalizację przeszkody w wierszu 2<br />uint8_t z=0;<br />uint8_t s=0;<br />uint8_t key_lock=0;<br /><br /><br />unsigned int stan_poprzedni=1; //Przy inicjalizacji bedzie to 'seed'<br />const unsigned int a=22695, c=1;<br />uint16_t wiersz;<br /><br />void key_init(void)<br />{<br />DDRx_KEY &amp;= ~(PIN_KEY);<br />PORTx_KEY |= (PIN_KEY);<br />}<br />uint8_t key_push(void)<br />{<br />if( !key_lock &amp;&amp; !(PINx_KEY &amp; PIN_KEY) ) key_lock=1;<br /><br />else if( key_lock &amp;&amp; (PINx_KEY &amp; PIN_KEY ) )<br />  {<br />  if( !++key_lock )<br />  {<br />   // reakcja na PUSH_UP (zwolnienie przycisku)<br />   return 1;<br />  }<br />  }<br /> return 0;<br />}<br /><br />void pokaz(uint8_t x)<br />{<br />uint8_t pojazd&#91;&#93;={16,24,28,31,31,28,24,16};<br /><br />lcd_defchar(0x81, pojazd);<br />lcd_locate(x,1);<br />lcd_str(&quot;\x81&quot;);<br /><br />}<br />void rysuj(uint8_t y, uint8_t x)<br />{<br />uint8_t przeszkoda&#91;&#93;={31,31,31,31,31,31,31,31};<br />lcd_defchar(0x82, przeszkoda);<br />lcd_locate(y,x);<br />lcd_str(&quot;\x82&quot;);<br />}<br />void nowa_przeszkoda(void)<br />{<br />losuj();<br />wiersz=stan_poprzedni%2;<br />if(wiersz==1)<br />{<br />przeszkody_y&#91;z&#93;=15;<br />rysuj(1,15);<br />}<br />else if(wiersz==0)<br />{<br />przeszkody_x&#91;z&#93;=15;<br />rysuj(0,15);<br />}<br />++z;<br />if(z&gt;15)z=0;<br />}<br /><br />void przesun(void)<br />{<br />uint8_t i=0;<br />uint8_t kor_x, kor_y;<br />for(;i&lt;=15;++i)<br />{<br />kor_x=przeszkody_x&#91;i&#93;;<br />if(kor_x){<br />lcd_locate(0,kor_x);<br />lcd_str(&quot; &quot;);<br />--kor_x;<br />if(kor_x&gt;0){<br />rysuj(0,kor_x);<br />przeszkody_x&#91;i&#93;=kor_x;<br />kolizja(i);<br />}<br />else przeszkody_x&#91;i&#93;=0;<br />}<br />kor_y=przeszkody_y&#91;i&#93;;<br />if(kor_y){<br />lcd_locate(1,kor_y);<br />lcd_str(&quot; &quot;);<br />--kor_y;<br />if(kor_y&gt;0){<br />rysuj(1,kor_y);<br />przeszkody_y&#91;i&#93;=kor_y;<br />kolizja(i);<br />}<br />else przeszkody_y&#91;i&#93;=0;<br />}<br />}<br />}<br />void sterowanie(void)<br />{<br />if(s==0)<br />{<br />pokaz(1);<br />lcd_locate(0,1);<br />lcd_str(&quot; &quot;);<br />s=1;<br />}<br />else if(s==1){<br />pokaz(0);<br />lcd_locate(1,1);<br />lcd_str(&quot; &quot;);<br />s=0;<br />}<br /><br />}<br /><br />void kolizja(uint8_t i)<br />{<br />if((s==0) &amp; (przeszkody_x&#91;i&#93;==1))<br />{<br />game_start=0;<br />//epilog();<br />}<br /><br />else if((s==1) &amp; (przeszkody_y&#91;i&#93;==1))<br />{<br />game_start=0;<br />//epilog();<br />}<br />}<br />void epilog(void)<br />{<br />lcd_cls();<br />lcd_locate(0,4);<br />lcd_str(&quot; KONIEC &quot;);<br />lcd_locate(1,5);<br />lcd_str(&quot; GRY! &quot;);<br />}<br /><br />void prolog(void)<br />{<br />lcd_locate(0,3);<br />lcd_str(&quot;ZACZYNAMY ??&quot;);<br />lcd_locate(1,0);<br />lcd_str(&quot;WCISNIJ PRZYCISK&quot;);<br />while(!key_push());<br />lcd_cls();<br />game_start=1;<br />}<br /><br />uint8_t losuj(void)<br />{<br /> stan_poprzedni=(a*stan_poprzedni+c);<br /> return stan_poprzedni%257;<br />}<br />/*<br /> * inicjalizacja przerwań<br /> */<br />void sei_init(void)<br />{<br /> /*Przerywanie ok 10ms 100Hz*/<br />    /* Timer0 – inicjalizacja przerwania co 10ms */<br />    TCCR0   |= (1&lt;&lt;CS00)|(1&lt;&lt;CS02); // preskaler = 1024<br />    TCNT0   = 178;                                  // przerwanie porównania co 10ms (100Hz)<br />    TIMSK   |= (1&lt;&lt;TOIE0);                  // Odblokowanie przerwania OverFlow<br />}[/syntax]<br /><br />makra.h<br />[syntax=c]/*<br /> * makra.h<br /> *<br /> *  Created on: 2013-05-30<br /> *      Author: Wielki<br /> */<br /><br />#ifndef MAKRA_H_<br />#define MAKRA_H_<br /><br />// Makra upraszczające dostęp do portów<br />// *** PORT<br />#define PORT(x) SPORT(x)<br />#define SPORT(x) (PORT##x)<br />// *** PIN<br />#define PIN(x) SPIN(x)<br />#define SPIN(x) (PIN##x)<br />// *** DDR<br />#define DDR(x) SDDR(x)<br />#define SDDR(x) (DDR##x)<br /><br />#endif /* MAKRA_H_ */[/syntax]<br /><br />oczywiście można zmienić poziom trudności zmieniając ustawienia timera0 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Kod jest wieeeelce nie optymalny, ale na razie się uczę. Wiem że wiele rzeczy można było zapisać prościej i łatwiej, ale w imię zasady KISS nie zmieniam co działa <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Pozdrawiam i czekam na opinie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Zapomniał bym, dzięki koledze rez mamy filmik !! <br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1326">Wielki</a> — 31 maja 2013, o 21:10</p><hr />
]]></content>
</entry>
</feed>