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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-09T12:20:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7331&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2014-07-09T12:20:35+01:00</updated>
<published>2014-07-09T12:20:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87061#p87061</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87061#p87061"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87061#p87061"><![CDATA[
<div class="quotetitle">mateusz_dan napisał(a):</div><div class="quotecontent"><br />Dlaczego jak używam lcd_cls(); to nie działa...?<br /></div><br /><br />Jest jeszcze taki prosty sposób z fllagą. Na początku zerujesz flagę, a potem przed każdym wyczyszczeniem/ odświeżeniem ekranu sprawdzasz jej stan i jeśli jest wyzerowana to czyścisz ekran po czym dajesz jej wartość różną od zera. Następnie przy każdej zmianie jakiegoś parametru, który ma być wyświetlony znowu zerujesz flagę. Taki algorytm powoduje, że ekran jest kasowany TYLKO przy wprowadzaniu na nim jakichś zmian, w przeciwnym wypadku procedura czyszczenia jest omijana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 9 lip 2014, o 12:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-07-08T15:36:58+01:00</updated>
<published>2014-07-08T15:36:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87016#p87016</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87016#p87016"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87016#p87016"><![CDATA[
<div class="quotetitle">mateusz_dan napisał(a):</div><div class="quotecontent"><br />Ma ktoś propozycje jak mogę sobie z tym poradzić?<br /></div><br /><br />Jak zwykle radze skorzystać z flagi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> tzn.<br /><br />[syntax=c]...<br />while(1)<br />{<br />     if(!(PINB &amp; (1&lt;&lt;PB0))) flaga++; // musisz wprowadzić opóźnienie (drgania styków). Jak to zrobić? Odsyłam do poradników Pana Mirka :)<br />     if(flaga&gt;1) flaga=0;<br /><br />     if(flaga==0)<br />     {<br />           PORTD |= (1&lt;&lt;PD0);   //wyłacz diodę<br />           lcd_str(&quot;OFF&quot;);          <br />     }<br /><br />     if(flaga==1)<br />     {<br />           PORTD &amp;= ~(1&lt;&lt;PD0);<br />           lcd_str(&quot;ON &quot;);<br />     }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 8 lip 2014, o 15:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-07-08T15:26:33+01:00</updated>
<published>2014-07-08T15:26:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87014#p87014</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87014#p87014"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87014#p87014"><![CDATA[
<div class="quotetitle">mateusz_dan napisał(a):</div><div class="quotecontent"><br />Próbowałem różnych sposobów<br /></div><br /><br />ciekawe czy zaglądasz pan na bloga <!-- w --><a class="postlink" href="http://www.mirekk36.blogspot.com" >www.mirekk36.blogspot.com</a><!-- w --> ? ... bo tam jest sposób który działa doskonale <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html" >http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 lip 2014, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz_dan]]></name></author>
<updated>2014-07-08T15:20:58+01:00</updated>
<published>2014-07-08T15:20:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87013#p87013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87013#p87013"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=87013#p87013"><![CDATA[
Problem rozwiązany ale teraz mam trochę inny w tym temacie. Chce robić to samo co robiłem poprzednio, tylko wcześniej używałem przełącznika który przyjmował stan 0 lub 1. Jak przełączyłem w jedną stronę to było 0 jak w druga to 1. Teraz chciałbym wykorzystać mikroswitch, który jak wiadomo nie podtrzymuje stanu 0 ani 1. Tylko daje nam impuls. Próbowałem różnych sposobów ale jakoś nie do końca działa tak jak powinno. Chciałbym, żeby normalnie na wyświetlaczu było OFF i dioda była wyłączona, gdy wcisnę mikroswitch'a zmieni mi stan, dioda się zapali, a na wyświetlaczu pojawi się ON. Kolejne kliknięcie na mikroswitch'a znów zmieni na OFF i tak w kółko.<br /><br />Zmieniać stan diody mogę w prosty sposób za pomocą LED_TOG, lecz nie umiem powiązać tego z komunikatem na wyświetlaczu (zmiana z OFF na ON). Gdy próbowałem normalnie, za pomocą LED_ON, LED_OFF działa ale tylko jak mikroswitch jest wciśnięty. Gdy go puszczę nie zapamiętuje stanu i wraca na OFF.<br /><br />Ma ktoś propozycje jak mogę sobie z tym poradzić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3095">mateusz_dan</a> — 8 lip 2014, o 15:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz_dan]]></name></author>
<updated>2014-06-09T08:44:22+01:00</updated>
<published>2014-06-09T08:44:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83792#p83792</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83792#p83792"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83792#p83792"><![CDATA[
Spoko. Tak więc zrobię. Dzięki za pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3095">mateusz_dan</a> — 9 cze 2014, o 08:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2014-06-07T20:24:30+01:00</updated>
<published>2014-06-07T20:24:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83662#p83662</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83662#p83662"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83662#p83662"><![CDATA[
Dokładnie tak <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Spacja załatwi sprawę ale może kolega chce poćwiczyć inne opcje to może sobie wymyśleć milion innych rozwiązań <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Jak już też ktoś wyżej napisał ilu programistów tyle rozwiązań <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> dla treningu można się bawić ale normalnie każdy pewnie wstawił by spacje <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=1363">eMCe2</a> — 7 cze 2014, o 20:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2014-06-07T17:56:01+01:00</updated>
<published>2014-06-07T17:56:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83638#p83638</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83638#p83638"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83638#p83638"><![CDATA[
bo jak uzywasz lcd_cls() to w kazdym przejsciu pętli głównej czyscisz ekran, sprawdzas warunki i zapisujesz go na nowo... dlatego mruga z prędkością pętli while().<br />Musiałbyś dorobic jakąś flagę w tych warunkach żeby ci czyściło tylko raz ekran, po wyczyszczeniu ustawiasz flage ze byl wyczyszczony i w kolejnym przejsciu sprawdzasz czy ta flaga jest czy nie i wtedy czyscisz albo nie znowu. w zaleznosci czy zmienil sie stan wejscia...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1363">eMCe2</a> — 7 cze 2014, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz_dan]]></name></author>
<updated>2014-06-07T16:43:24+01:00</updated>
<published>2014-06-07T16:43:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83634#p83634</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83634#p83634"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83634#p83634"><![CDATA[
No w sumie nic dziwnego. Właśnie... To jest jedno z rozwiązań. Jak to zrobić za pomocą lcd_cls(); Dlaczego jak używam lcd_cls(); to nie działa...?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3095">mateusz_dan</a> — 7 cze 2014, o 16:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2014-06-07T16:37:44+01:00</updated>
<published>2014-06-07T16:37:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83633#p83633</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83633#p83633"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83633#p83633"><![CDATA[
A co w tym dziwnego? Jedno z rozwiązań.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 7 cze 2014, o 16:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-06-07T16:37:27+01:00</updated>
<published>2014-06-07T16:37:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83632#p83632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83632#p83632"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83632#p83632"><![CDATA[
Wyświetlacz LCD sam nie czyści pozycji za jak i przed wyświetlanym napisem,<br />sam musisz decydować co trzeba wyczyścić<br />(zapisać spacjami).<br />Takie działanie jest w większości wskazane <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=1044">Zaba</a> — 7 cze 2014, o 16:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz_dan]]></name></author>
<updated>2014-06-07T16:32:45+01:00</updated>
<published>2014-06-07T16:32:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83631#p83631</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83631#p83631"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83631#p83631"><![CDATA[
Na coś takiego też wpadłem, ale rozwiązanie trochę &quot;dziwne&quot; jak dla mnie <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=3095">mateusz_dan</a> — 7 cze 2014, o 16:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-06-07T16:00:20+01:00</updated>
<published>2014-06-07T16:00:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83629#p83629</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83629#p83629"/>
<title type="html"><![CDATA[Re: LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83629#p83629"><![CDATA[
Zrób to tak:<br /><br />[syntax=c]if (KEY_DOWN)<br />        {<br />                LED_ON;<br />                lcd_locate(0,0);<br />                lcd_str(&quot;ON &quot;);<br /> <br />        }<br />        else<br />        {<br />                LED_OFF;<br />                lcd_locate(0,0);<br />                lcd_str(&quot;OFF&quot;);<br />        }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 7 cze 2014, o 16:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz_dan]]></name></author>
<updated>2014-06-07T15:21:53+01:00</updated>
<published>2014-06-07T15:21:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83615#p83615</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83615#p83615"/>
<title type="html"><![CDATA[LCD + przełącznik = zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7331&amp;p=83615#p83615"><![CDATA[
Witam.<br /><br />Piszę ponieważ mam problem, a jakoś nie mogę go rozwiązać. Nie wiem czy dobrze zdefiniowałem temat mojego problemu ale już wyjaśniam o co chodzi. Do ATmegi8 mam podłączony przełącznik (ON/OFF) i diodę LED. Chcę aby na wyświetlaczu LCD informowało mnie w jakiej pozycji jest przełącznik, ON lub OFF. Oprócz wyświetlania informacji na LCD mam dodatkowo podłączoną diodę która pokazuje czy przełącznik jest włączony czy wyłączony. Problemem jest zmiana wyświetlonego stanu na LCD. Wyświetla mi na LCD OFF, zmieniam stan przełącznika i wyświetla ONF. Po prostu nie wyczyściło wyświetlacza LCD i na stary komunikat OFF nałożyło ON i powstało ONF. Jeśli użyje lcd_cls(); w pętli while(1) to będzie mrugać bez końca... Problem dla większości pewnie trywialny, ale jestem początkującym w tym temacie.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />// dioda LED<br />#define LED_PIN (1&lt;&lt;PB1)// definicja pinu do którego podłączona jest dioda<br />#define LED_OFF PORTB &amp;= ~LED_PIN<br />#define LED_ON PORTB |= LED_PIN <br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PC3)<br />#define KEY_DOWN !(PINC &amp; KEY_PIN)<br /><br /><br />// *********************************************************<br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRB |= LED_PIN;<br />PORTB |= LED_PIN;<br />DDRC &amp;= ~ KEY_PIN;<br />PORTC |= KEY_PIN;<br /><br />lcd_init();/* inicjalizacja LCD */<br /><br /><br />// ****** pętla główna programu  *********<br />while(1){<br /><br />if (KEY_DOWN)<br /> _delay_ms(10);<br />if (KEY_DOWN)<br />{<br />LED_ON;<br />lcd_locate(0,0);<br />lcd_str(&quot;ON&quot;);<br /><br />}<br />else<br />{<br />LED_OFF;<br />lcd_locate(0,0);<br />lcd_str(&quot;OFF&quot;);<br />}<br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3095">mateusz_dan</a> — 7 cze 2014, o 15:21</p><hr />
]]></content>
</entry>
</feed>