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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-27T12:29:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9448&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2014-11-27T12:29:30+01:00</updated>
<published>2014-11-27T12:29:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106192#p106192</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106192#p106192"/>
<title type="html"><![CDATA[Re: LCD - efekty na wyświetlaczu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106192#p106192"><![CDATA[
Co prawda ja mechanizmu o jaki Ci chodziło użyłem do funkcji formatowania liczby, a konkretnie dopisywanie zer ale powinno Cię to naprowadzić na właściwe rozwiązanie (hmm, które w zasadzie Ci już podałem na tacy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> )<br /><br />[syntax=c]locate (y,x); while(spc--) lcd(&quot;0&quot;);[/syntax]<br /><br />Dodaj tylko timer programowy, zmienną spc sterujesz ile ma być znaków.<br /><br />(Nie zwracaj zbytnio uwagi na składnię obsługującą LCD, bo to moje instrukcje przystosowane do obsługi ekranu buforowanego)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 27 lis 2014, o 12:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-11-27T12:14:39+01:00</updated>
<published>2014-11-27T12:14:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106188#p106188</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106188#p106188"/>
<title type="html"><![CDATA[Re: LCD - efekty na wyświetlaczu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106188#p106188"><![CDATA[
Pomijając fakt, że nie podałeś całego kodu i nie wiadomo jak obsługujesz przerwania i timery programowe to ten drugi sposób na pewno ci nie zadziała. <br />Pomyśl. W pierwszym przykładzie przy pierwszym obiegu pętli for program się zatrzymuje na delayu, potem coś tam wyświetla na LCD, następuje kolejny obieg pętli for, następnie delay, wyświetlanie na LCD... I tak 10 razy.<br /><br />W drugim przypadku, przy pierwszym obiegu pętli for program sprawdza czy Tomer3 == 0. Jeśli nie to niczego nie wyświetla na LCD i przechodzi do drugiego obiegu pętli for. I znów sprawdza zmienną Timer3. Jeśli nie jest wyzerowana to przechodzi do kolejnego obiegu for. I zanim zmienna Timer3 osiągnie wartość zero pętla for już zdąży się skończyć. I pewnie dlatego ta druga wersja ci nie działa.<br /><br />Zauważ jeszcze jedną rzecz. Jeśli w programie, który ma działać nieblokująco, zastosujesz np. pętlę for i w tej pętli program będzie się kręcił przez dłuższy czas np. 3 sekundy to na ten czas zablokujesz resztę programu (poza przerwaniami). Wtedy taka pętla for niczym się nie różni od _delay_ms(3000). Może jedynie tym, że wewnątrz takiej pętli program może coś robić. Ale pętla główna poza for i tak nic nie robi, tak samo jak przy delayu.<br /><br />Dlatego pomyśl nad wykorzystaniem jakiejś zmiennej, w której będziesz odliczał ilość wyświetlonych kropek. Zamiast odliczać ilość kropek pętlą for.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 27 lis 2014, o 12:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz_dan]]></name></author>
<updated>2014-11-27T11:49:39+01:00</updated>
<published>2014-11-27T11:49:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106186#p106186</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106186#p106186"/>
<title type="html"><![CDATA[LCD - efekty na wyświetlaczu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9448&amp;p=106186#p106186"><![CDATA[
Witam.<br /><br />Chciałem na wyświetlaczu LCD wyświetlać w jednej linii kropkę która co jakiś czas (powiedzmy sekundę) jest zwiększana o następną. Czyli mamy pustą linię, za sekundę &quot;.&quot;, za dwie sekundy &quot;..&quot;, za trzy &quot;...&quot;. Na początku linia jest pusta za sekundę pokazuje się jedna kropka potem druga obok itd. Coś na kształt pokazania, że coś się ładuje. Gdy ilość kropek osiągnie zadeklarowane maximum to wyświetlanie zaczyna się od nowa czyli od pustej linii, i potem od jednej kropki, drugiej itd. <br /><br />Napisałem coś takiego, ale z użyciem _delay_ms lecz chciałbym zrobić to na timerze, ponieważ delay blokuje mi wyświetlanie temperatury z czujnika.<br /><br />Z delayem będzie to tak:<br />[syntax=c]for( x=0 ; x&lt;10 ; x++)<br />{<br />_delay_ms(200);<br />lcd_locate(1,5+x);<br />lcd_str(&quot;.&quot;);<br />}[/syntax]<br />Z przerwaniem próbowałem tak, ale nie działa:<br />[syntax=c]for( x=0 ; x&lt;10 ; x++)<br />{<br />if(!Timer3)<br />{<br />lcd_locate(1,5+x);<br />lcd_str(&quot;.&quot;);<br />Timer3=200;<br />}<br />}[/syntax]<br /><br />Jak to ma być poprawnie napisane z przerwaniem? I jak zrobić, żeby załadowało się kila znaków, znikło i ładowało od nowa, bez czyszczenia całego LCD tylko żeby wyczyścić jedną linię?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3095">mateusz_dan</a> — 27 lis 2014, o 11:49</p><hr />
]]></content>
</entry>
</feed>