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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-02-02T11:11:32+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=810&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-02T11:11:32+01:00</updated>
<published>2012-02-02T11:11:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2219#p2219</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2219#p2219"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2219#p2219"><![CDATA[
<div class="quotetitle">kris napisał(a):</div><div class="quotecontent"><br />pętla się wykonuje dzięki wszystkim za pomoc  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Ja bym tylko proponował, żebyś zwrócił uwagę na to, że wspomniana w pierwszym wątku pętla for() także się wykonywała, tylko nie wpadłeś na pomysł, jak to sobie zwizualizować. Jest to o tyle istotne, żebyś nie popełnił błędu myślowego, że pętla for() dopiero teraz działa - a wcześniej nie działała. Pomoże ci to w dalszym pisaniu programów i korzystaniu z pętli. Nie zawsze przecież muszą być widoczne dla oka efekty działania przeróżnych pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 lut 2012, o 11:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-02-02T10:30:18+01:00</updated>
<published>2012-02-02T10:30:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2218#p2218</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2218#p2218"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2218#p2218"><![CDATA[
pętla się wykonuje dzięki wszystkim za pomoc  <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=202">kris</a> — 2 lut 2012, o 10:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-02-01T22:56:23+01:00</updated>
<published>2012-02-01T22:56:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2212#p2212</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2212#p2212"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2212#p2212"><![CDATA[
oj tak .... potrafią zrobić spore zamieszanie , o ile w takim programie to żaden problem , to w większych konstrukcjach .... boli bardzo<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 1 lut 2012, o 22:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-01T22:44:23+01:00</updated>
<published>2012-02-01T22:44:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2211#p2211</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2211#p2211"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2211#p2211"><![CDATA[
No tak, racja, że powinno być bez znaku. <br />Ale tak generalnie, to z tymi zmiennymi do odliczania w pętlach trzeba uważać. Sam się na początku na nich sparzyłem. Piecze do dzisiaj <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=150">worner</a> — 1 lut 2012, o 22:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-01T22:36:30+01:00</updated>
<published>2012-02-01T22:36:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2209#p2209</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2209#p2209"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2209#p2209"><![CDATA[
<div class="quotetitle">worner napisał(a):</div><div class="quotecontent"><br />A czy ta zmienna iteracyjna &quot;i&quot; to musi być dwubajtowa jak liczy tylko do 3 (słownie czech <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> )? Można chyba ją zdecydowanie zmieścić w jednym bajcie, prawda?<br /></div><br /><br />Bardzo słuszna i cenna uwaga. Tyle że jak już to nawet wystarczy typ uint8_t zamiast int8_t. Ale generalnie bardzo dobra zasada żeby myśleć o KAŻDYM bajcie - brawo! <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> — 1 lut 2012, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-01T22:27:52+01:00</updated>
<published>2012-02-01T22:27:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2208#p2208</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2208#p2208"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2208#p2208"><![CDATA[
A czy ta zmienna iteracyjna &quot;i&quot; to musi być dwubajtowa jak liczy tylko do 3 (słownie czech <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> )? Można chyba ją zdecydowanie zmieścić w jednym bajcie, prawda?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 1 lut 2012, o 22:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-01T22:22:38+01:00</updated>
<published>2012-02-01T22:22:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2207#p2207</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2207#p2207"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2207#p2207"><![CDATA[
Panie kolego ależ wykonuje ci pętlę for() .... tylko jak ty chcesz się przekonać o tym fakcie wzrokowo przy takim kodzie. No toż warto by go chociaż troszkę zmodyfikować. Koledzy ci już podpowiadają, dodałeś po CLS jeszcze Delaya 1s .... a wstaw jeszcze kolejnego Delaya tuż po zakończeniu pętli for() to wtedy co trzy skasowania swojego tekstu będziesz miał dłuższą przerwę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> albo coś takiego:<br /><br />[syntax=c]int main(void){<br /><br />   int i;<br /><br />      lcd_init();<br />      while(1){<br />         for(i=0;i&lt;3;i++){<br />            lcd_locate(0,0);<br />            lcd_str(&quot;Test&quot;);<br />            lcd_locate(0,10);<br />            lcd_int(i);  // ****** wyświetlamy sobie wartość zmiennej i<br />            _delay_ms(1000);<br />            lcd_cls();<br />            _delay_ms(1000);<br />         }<br />      }<br />}[/syntax]<br /><br />wtedy już &quot;nie ma mocnych&quot; - zobaczysz odliczanie od 0 do 2 powtarzające się. Trzeba kombinować<br /><br />aha .... korzystaj z rozwijanego pola na górze i kod programu wstawiaj w znaczniki syntax=c zamiast code OK ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 lut 2012, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-01T21:56:13+01:00</updated>
<published>2012-02-01T21:56:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2205#p2205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2205#p2205"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2205#p2205"><![CDATA[
Chyba pętle for właśnie wykonuje, tylko, że kolega tak to napisał, że po ostatnim wykonaniu tej pętli nic dalej ma się nie odbyć w tym programie. Dopóki jest spełniony warunek<br />while (1) pętla będzie wieczna. <br /><br />Jeśli ma się ten komunikat wyświetlić tylko trzy razy, to zamiast tego while (1) ja bym spróbował tak:<br /><br />[syntax=c]<br />int main(void){<br />   lcd_init();<br /><br />   int8_t  i;<br /><br />   for(i=0;i&lt;3,i++)<br />   {<br />      <br />      while(i&gt;0){<br />         <br />            lcd_locate(0,0);<br />            lcd_str(&quot;Test&quot;);<br />            _delay_ms(1000);<br />            lcd_cls();<br />            _delay_ms(1000);<br />         }<br />      }<br />}<br />[/syntax]<br /><br />O może tak<br /><br />Edit:<br /><br />A zapomniałem, że na końcu oryginalnego kodu kolego można by zastosować np. instrukcję else i po niej czyszczenie ekranu. Czyi pętla wykonałaby się trzy razy, a za czwartym przebiegiem wykona tylko czyszczenie ekranu i zacznie od nowa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 1 lut 2012, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-02-01T21:48:23+01:00</updated>
<published>2012-02-01T21:48:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2204#p2204</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2204#p2204"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2204#p2204"><![CDATA[
Już prawie działa teraz wykonuje tylko nieskończoną pętle, cały czas wyświetla napis Test z przerwaniami co 1 s, a pętli for nie wykonuje<br />[syntax=c]int main(void){<br /><br />int i;<br /><br />lcd_init();<br />while(1){<br />for(i=0;i&lt;3;i++){<br />lcd_locate(0,0);<br />lcd_str(&quot;Test&quot;);<br />_delay_ms(1000);<br />lcd_cls();<br />_delay_ms(1000);<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 lut 2012, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-01T21:35:04+01:00</updated>
<published>2012-02-01T21:35:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2203#p2203</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2203#p2203"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2203#p2203"><![CDATA[
A niech kolega doda po instrukcji<br />lcd_cls();<br /><br />kolejne delay ms (1000).<br />I wtedy będzie jasne ile razy pętla się wykona.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 1 lut 2012, o 21:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-02-01T21:14:31+01:00</updated>
<published>2012-02-01T21:14:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2202#p2202</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2202#p2202"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2202#p2202"><![CDATA[
Zastosowałem się do powyższych zasad i nadal nie wykonuje się pętla, wyświetla się cały czas napis Test tak jakby petle wykonano tylko raz<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />int main(void){<br /><br />int8_t i;<br /><br />lcd_init();<br />while(1){<br />for(i=0;i&lt;3;i++){<br />lcd_locate(0,0);<br />lcd_str(&quot;Test&quot;);<br />_delay_ms(1000);<br />lcd_cls();<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 lut 2012, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-02-01T15:00:40+01:00</updated>
<published>2012-02-01T15:00:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2198#p2198</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2198#p2198"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2198#p2198"><![CDATA[
No właśnie tak jak pisze kolega Mirek<br /><br />poczytaj co i jak robi pętla FOR <br /><br />bo czytając twój program <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />[syntax=c]<br />  for(i=0;i&lt;3;i++){                       // wszystko poniżej zostanie wykonane 3 razy<br />                        lcd_init();  <br />                        lcd_locate(0,0);<br />                        lcd_str(&quot;Test&quot;);<br />                        lcd_cls();<br />                        _delay_ms(1000);<br />                }<br /><br />[/syntax]<br /><br />wiec się zastanów dlaczego 3x robisz inicjacje LCD, wywietlanie i kasowanie ??<br /><br />jak już bardzo chcesz żeby to było 3 razy  to zrób tak<br /><br />[syntax=c]<br /><br />lcd_init()<br />for(i=0;i&lt;3;i++){                       // wszystko poniżej zostanie wykonane 3 razy<br />                          <br />                        lcd_locate(0,0);<br />                        lcd_str(&quot;Test&quot;);<br />                        <br />                        _delay_ms(1000);<br />                        lcd_cls();<br />                }<br /><br /><br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 1 lut 2012, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-01T13:50:51+01:00</updated>
<published>2012-02-01T13:50:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2196#p2196</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2196#p2196"/>
<title type="html"><![CDATA[Re: pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2196#p2196"><![CDATA[
Myślę, że najpierw to przydałoby się bardziej sprecyzować twoje założenie do tego testowego programu, bo na podstawie opisu i pokazanego kodu można tylko próbować zgadywać. Zwykle tego nie robię - tzn nie zgaduję - ale ponieważ kolega jest chyba nowym użytkownikiem i początkującą osobą - to wyjątkowo spróbuję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Czy nie chodziło ci przypadkiem o to, żeby trzy razy wyświetlić na LCD jakiś tekst ale w taki sposób, żeby:<br /><br />1. pojawił się pierwszy napis na LCD<br />2. wyświetlał się przez czas 1 sekundy<br />3. skasował się ten tekst<br />4. pojawił się drugi napis<br />5. wyświetlał się 1 sekundę<br />6. itd ???<br /><br />Jeśli tak to zastanów się jak u ciebie działa pętla <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Po pierwsze kardynalny mega BŁĄD (inicjalizację LCD robisz za każdym razem w pętli) .... kolega nie doczytał w książce (trzeba wrócić do niej jeszcze raz) o tym jak dzieli się funkcję main(). Że najpierw jest część gdzie robi się inicjalizację pinów, portów i różnych modułów, potem ew uruchamia globalne przerwania jeśli są akurat konieczne a dopiero potem robi się pętlę główną. <br /><br />A u ciebie gdzie jest inicjalizacja LCD ? na początku main() ???? toż to się raz inicjalizuje i już działa - nie trzeba i wręcz nie można takiej inicjalizacji przeprowadzać wciąż w pętli!<br /><br />ok załóżmy że poprawiasz kod i dajesz inicjalizację przed pętlę główną - ale co się dale w nim dzieje.<br /><br />1. wyświetlasz tekst<br />2. ----!!!!!----- od razu go kasujesz (LCD_cls) po co ? w tym miejscu ?<br />3. odczekujesz 1 sekundę (_delay_ms(1000))<br /><br />czy nie widzisz tego babola ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />chyba chodziło ci o:<br /><br />1. wyświetlasz tekst<br />2. oczekujesz 1 sekundę<br />3. dopiero teraz kasujesz tekst i pętla rozpocznie się od nowa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 lut 2012, o 13:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-02-01T12:46:23+01:00</updated>
<published>2012-02-01T12:46:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2194#p2194</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2194#p2194"/>
<title type="html"><![CDATA[pętla for i wyświetlacz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=810&amp;p=2194#p2194"><![CDATA[
Mam problem gdyż chcę wyświetlić np. 3 razy dowolny tekst, pojawia się i znika tak 3 razy, zamieszczam kod poniżej <br />[syntax=c]#include &quot;LCD/lcd44780.h&quot;<br /><br />int main(void){<br /><br />int8_t i;<br />while(1){<br /><br />for(i=0;i&lt;3;i++){<br />lcd_init();<br />lcd_locate(0,0);<br />lcd_str(&quot;Test&quot;);<br />lcd_cls();<br />_delay_ms(1000);<br />}<br />}<br />}[/syntax]<br />Co może być źle w powyższym kodzie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 lut 2012, o 12:46</p><hr />
]]></content>
</entry>
</feed>