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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-04-26T23:04:47+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=23739&amp;mode</id>
<entry>
<author><name><![CDATA[APAP75]]></name></author>
<updated>2021-04-26T23:04:47+01:00</updated>
<published>2021-04-26T23:04:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232119#p232119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232119#p232119"/>
<title type="html"><![CDATA[Re: Załączanie diody LED przyciskiem + zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232119#p232119"><![CDATA[
Po prosty sprawdz stan portu z diodą LED<br /><br />[syntax=c]if( !key_lock &amp;&amp; !(PIND &amp; KEY_PIN ) ) {<br />                   key_lock=1;<br />                   PORTC ^= LED_PIN;<br />                   lcd_cls();<br />                   if(PINC &amp;(1&lt;&lt;PC7))  lcd_str(&quot;LED OFF&quot;);<br />                   else  lcd_str(&quot;LED ON&quot;);<br />                  } else if( key_lock &amp;&amp; (PIND &amp; KEY_PIN ) ) key_lock++;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6195">APAP75</a> — 26 kwi 2021, o 23:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cekin]]></name></author>
<updated>2021-04-25T14:33:08+01:00</updated>
<published>2021-04-25T14:33:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232112#p232112</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232112#p232112"/>
<title type="html"><![CDATA[Re: Załączanie diody LED przyciskiem + zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232112#p232112"><![CDATA[
Równoważnie można to zapisać w ten sposób: [syntax=c]if(stan==0)[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1711">cekin</a> — 25 kwi 2021, o 14:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[adekpp]]></name></author>
<updated>2021-04-25T13:55:59+01:00</updated>
<published>2021-04-25T13:55:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232111#p232111</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232111#p232111"/>
<title type="html"><![CDATA[Re: Załączanie diody LED przyciskiem + zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232111#p232111"><![CDATA[
<div class="quotetitle">cekin napisał(a):</div><div class="quotecontent"><br />Ja proponuje użyć warunku &quot;if&quot; ze zmienną globalną uint8_t np.: stan:<br />[syntax=c]if( !key_lock &amp;&amp; !(PIND &amp; KEY_PIN ) ) {<br />   key_lock=1;<br />   if (!stan){<br />      stan=1;<br />      LED_ON;<br />      lcd_cls();<br />      lcd_str(&quot;LED ON&quot;);<br />   }<br />   else{<br />      stan=0;<br />      LED_OFF;<br />      lcd_cls();<br />      lcd_str(&quot;LED OFF&quot;);<br />   }<br /> <br />} else if( key_lock &amp;&amp; (PIND &amp; KEY_PIN ) ) key_lock++;[/syntax]<br /></div><br /><br />W tym przypadku [syntax=c]if (!stan)[/syntax] sprawdza wartość  zmiennej stan, czy źle to rozkminiam?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21722">adekpp</a> — 25 kwi 2021, o 13:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cekin]]></name></author>
<updated>2021-04-25T13:39:47+01:00</updated>
<published>2021-04-25T13:39:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232110#p232110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232110#p232110"/>
<title type="html"><![CDATA[Re: Załączanie diody LED przyciskiem + zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232110#p232110"><![CDATA[
Ja proponuje użyć warunku &quot;if&quot; ze zmienną globalną uint8_t np.: stan:<br />[syntax=c]if( !key_lock &amp;&amp; !(PIND &amp; KEY_PIN ) ) {<br />   key_lock=1;<br />   if (!stan){<br />      stan=1;<br />      LED_ON;<br />      lcd_cls();<br />      lcd_str(&quot;LED ON&quot;);<br />   }<br />   else{<br />      stan=0;<br />      LED_OFF;<br />      lcd_cls();<br />      lcd_str(&quot;LED OFF&quot;);<br />   }<br /> <br />} else if( key_lock &amp;&amp; (PIND &amp; KEY_PIN ) ) key_lock++;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1711">cekin</a> — 25 kwi 2021, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[adekpp]]></name></author>
<updated>2021-04-25T12:53:06+01:00</updated>
<published>2021-04-25T12:53:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232109#p232109</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232109#p232109"/>
<title type="html"><![CDATA[Załączanie diody LED przyciskiem + zmiana stanu na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23739&amp;p=232109#p232109"><![CDATA[
Witajcie,<br /><br />Włączam i wyłączam diodę LED za pomocą jednego przycisku, po wciśnięciu przycisku na lcd widzę napis &quot;LED ON&quot; gdy dioda się załączy.<br />Jeśli wcisnę go drugi raz dioda się wyłączy, ale chciałbym uzyskać napis &quot;LED OFF&quot;. Moja logika ma z tym ogromny problem nie wiem jak to zrealizować.<br /><br />Kod obsługi przycisku zrealizowany na podstawie poradnika Pana Mirka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br />#define LED_PIN (1&lt;&lt;PC7)<br />#define LED_ON PORTC &amp;= ~LED_PIN<br />#define LED_OFF PORTC |= LED_PIN<br /><br />#define KEY_PIN (1&lt;&lt;PD0)<br /><br />uint8_t key_lock;<br /><br /><br />int main( void ) {<br />DDRC |= LED_PIN;<br />PORTC |= LED_PIN;<br /><br />DDRD &amp;= ~KEY_PIN;<br />PORTD |= KEY_PIN;<br />LED_OFF;<br />lcd_init();<br />lcd_str(&quot;WCISNIJ PRZYCISK&quot;);<br /><br /><br />    while ( 1 ) {<br /><br />      if( !key_lock &amp;&amp; !(PIND &amp; KEY_PIN ) ) {<br />       key_lock=1;<br />          PORTC ^= LED_PIN;<br />       lcd_cls();<br />       lcd_str(&quot;LED ON&quot;);<br /><br />      } else if( key_lock &amp;&amp; (PIND &amp; KEY_PIN ) ) key_lock++;<br /><br />        }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21722">adekpp</a> — 25 kwi 2021, o 12:53</p><hr />
]]></content>
</entry>
</feed>