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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-04-04T19:18:10+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24197&amp;mode</id>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2022-04-04T19:18:10+01:00</updated>
<published>2022-04-04T19:18:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235314#p235314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235314#p235314"/>
<title type="html"><![CDATA[Re: Ekran startowy z gry snake - Poradnik wskaźniki,struktur]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235314#p235314"><![CDATA[
Jest jeszcze kolejna rzecz, której nie mogę zrozumieć. <br />[syntax=c]TSNAKE * snakes( int8_t n ) {<br /><br />if( n == -1 ) init_snake1();<br />if( n == -2 &amp;&amp; snake_cnt == 2 ) init_snake2();<br /><br />if( snake_cnt == 1 &amp;&amp; n == 1 ) return 0;<br /><br />return &amp;snake_tab&#91;n&#93;;<br />}[/syntax]<br /><br />Funkcja inicjalizuje nam węże, na podstawie argumentu &quot;n&quot;, który przyjdzie z funkcji snake_init(); I funkcja zwraca nam w rezultacje adres do struktury, ale... snake_tab[-1],snake_tab[-2] ??? Bo ta funkcja tylko takie parametry przyjmuje. Nie mogę tego zrozumiec :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 4 kwi 2022, o 19:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2022-04-04T18:12:44+01:00</updated>
<published>2022-04-04T18:12:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235313#p235313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235313#p235313"/>
<title type="html"><![CDATA[Re: Ekran startowy z gry snake - Poradnik wskaźniki,struktur]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235313#p235313"><![CDATA[
Ok, brak reakcji na ramki IR był spowodowany tym, ze polecenie sei(); było na samym dole funkcji main, stąd kiedy został wywołany callback do ekranu powitalnego przerwanie prawdopodobnie nie działało. Jednak z kolei, gdy klikam klawisz to nie zawsze za pierwszym razem rozpoczyna się gra. Czasem muszę wcisnąć 2-5x zanim zaskoczy. Podczas gry reakcja jest normalna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 4 kwi 2022, o 18:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2022-04-04T14:26:38+01:00</updated>
<published>2022-04-04T14:26:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235310#p235310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235310#p235310"/>
<title type="html"><![CDATA[Ekran startowy z gry snake - Poradnik wskaźniki,struktury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24197&amp;p=235310#p235310"><![CDATA[
Witajcie, studiuje wszystkie części poradnika o wskaźnikach i strukturach, gdzie efektem ubocznym ma być gra snake. Gra działa, sterowanie, ekrany startowe i końcowe również. Jednak zaczynam się samemu bawić, przerabiając ich wygląd itp. Jedną z opcji, którą chciałem to, aby ekran nie znikał po czasie zadanym w _delay_ms, tylko, aby reagował na naciśnięcie klawisza, wtedy gra ma się rozpocząć. I tu pojawił się problem. Miałem troszkę przerwy od programowania i sporo rzeczy wyleciało z głowy i ciężko mi się czasem myśli <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Oto jak kombinuje to rozwiązać.<br /><br />[syntax=c]void display_init( uint8_t usr_cnt ) {<br />lcd_locate(0,0);<br />lcd_str(&quot;****************&quot;);<br />lcd_locate(1,0);<br />lcd_str(&quot;*     SNAKE    *&quot;);<br />lcd_locate(2,0);<br />lcd_str(&quot;*  PRESS  KEY  *&quot;);<br />lcd_locate(3,0);<br />lcd_str(&quot;****************&quot;);<br />while(1){<br />IR_EVENT();<br />if(command == 1)break;<br /><br />}<br />lcd_cls();<br />}[/syntax]<br /><br />Wrzucam pętle nieskończoną, aby zatrzymać ekran, w środku pętli wywołuje zdarzenie, które bada, czy nadleciała jakaś ramka. W ifie sprawdzam czy kod się zgadza, jeśli tak to program ma wyjść z pętli, a jednak tego nie robi. Kombinowałem na kilka innych sposobów, ale nie potrafie znaleźć rozwiązania wyjścia z pętli. <br />Ktoś podpowie, co robię nie tak ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 53 minutyach ]</span></strong><br /><br />Doszedłem do tego, że chyba jeszcze nie do końca rozumiem obsługę IR, a to tam jest problem. Gdy na sztywno podłączę microswitcha i napisze warunek od wciśnięcia klawisza, to działa jak należy. Tylko teraz nie bardzo wiem, jak się do tego zabrać, by obsłużyć to IR.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 4 kwi 2022, o 14:26</p><hr />
]]></content>
</entry>
</feed>