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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-01T11:22:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=7260&amp;mode</id>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-06-01T11:22:54+01:00</updated>
<published>2014-06-01T11:22:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82961#p82961</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82961#p82961"/>
<title type="html"><![CDATA[Re: Dodanie trzeciego przycisku do kodu z bloga]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82961#p82961"><![CDATA[
Mi ten kod działa prawidłowo. Używam zestawu ATB z Atmega16.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 1 cze 2014, o 11:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2014-06-01T10:06:24+01:00</updated>
<published>2014-06-01T10:06:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82958#p82958</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82958#p82958"/>
<title type="html"><![CDATA[Re: Dodanie trzeciego przycisku do kodu z bloga]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82958#p82958"><![CDATA[
Strasznie kolega przekombinował z tymi warunkami w klawiszach 2 i 3 .... <br />Może warto by było funkcję obsługująca przycisk SKOPIOWAĆ i  WKLEIĆ dokładnie taką samą dla wszystkich przycisków z uwzględnieniem tylko zmiany PINU klawisza oraz zmiennej Key_lock.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 1 cze 2014, o 10:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ds3]]></name></author>
<updated>2014-06-01T10:00:05+01:00</updated>
<published>2014-06-01T10:00:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82957#p82957</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82957#p82957"/>
<title type="html"><![CDATA[Dodanie trzeciego przycisku do kodu z bloga]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7260&amp;p=82957#p82957"><![CDATA[
Witam!<br />Kontynuuje moją naukę programowania mikrokontrolerów w języku C.<br />W chwili obecnej bawię się przyciskami. Na blogu znalazłem bardzo fajny poradnik: <!-- 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 --><br />Użyłem kodu do obsługi dwóch przycisków i dodałem trzeci:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2012-10-05<br /> *       Autor: Mirosław Kardaś<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED1 (1&lt;&lt;PB0)<br />#define LED2 (1&lt;&lt;PB1)<br />#define LED3 (1&lt;&lt;PB2)<br /><br />#define KEY1 (1&lt;&lt;PD0)<br />#define KEY2 (1&lt;&lt;PD1)<br />#define KEY3 (1&lt;&lt;PD2)<br /><br />uint8_t key1_lock, key2_lock, key3_lock;<br /><br />//**************** OBSŁUGA DWÓCH KLAWISZY<br /><br />int main(void) {<br /><br /> PORTD |= KEY1 | KEY2 | KEY3;  // podciągamy linie klawiszy do VCC<br /> DDRB |= LED1 | LED2 | LED3;   // piny LED jako WYjścia<br /><br /> _delay_ms(10);<br /><br /> while(1) {<br /><br />  // ******* KLAWISZ 1<br />  if( !key1_lock &amp;&amp; !(PIND &amp; KEY1 ) ) {<br />   key1_lock=1;<br /><br />   // reakcja na PRESS (wcinięcie przycisku)<br />   PORTB ^= LED1;<br /><br />  } else if( key1_lock &amp;&amp; (PIND &amp; KEY1 ) ) key1_lock++;<br /><br />  // ******* KLAWISZ 2<br />  if( !key2_lock &amp;&amp; !(PIND &amp; KEY2 ) ) key2_lock=1;<br />  else if( key2_lock &amp;&amp; (PIND &amp; KEY2 ) ) {<br />   if( !++key2_lock ) {<br /><br />    // reakcja na PUSH_UP (zwolnienie przycisku)<br />    PORTB ^= LED2;<br />   }<br />  }<br />  // ******* KLAWISZ 3<br />  if( !key3_lock &amp;&amp; !(PIND &amp; KEY3 ) ) key3_lock=1;<br />  else if( key3_lock &amp;&amp; (PIND &amp; KEY3 ) ) {<br />   if( !++key3_lock ) {<br /><br />    // reakcja na PUSH_UP (zwolnienie przycisku)<br />    PORTB ^= LED3;<br />   }<br />  }<br /><br /> }<br /><br />}[/syntax]<br /><br />Problem jest taki, że KEY2 w ogóle nie działa. KEY1 zapalają się wszystkie diody LED, a na KEY3 zapalają się LED1 i LED3. <br />Czy ktoś widzi mój błąd, czy po prostu aby działał trzeci przycisk trzeba jeszcze coś dodać?<br /><br /><br />Pozdrawiam!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1783">Ds3</a> — 1 cze 2014, o 10:00</p><hr />
]]></content>
</entry>
</feed>