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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-17T16:25:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9295&amp;mode</id>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-17T14:33:56+01:00</updated>
<published>2014-11-17T14:33:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104512#p104512</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104512#p104512"/>
<title type="html"><![CDATA[Re: Obsluga klawiszy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104512#p104512"><![CDATA[
Kolega popraw post - wrzuć kod w znaczniki SYNTAX inaczej jeden z &quot;zielonych&quot; Cię dorwie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ewentualnie &quot;różowy&quot; wyjątek potwierdzający regułę  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 17 lis 2014, o 14:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kubavit]]></name></author>
<updated>2014-11-17T16:25:12+01:00</updated>
<published>2014-11-17T12:36:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104488#p104488</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104488#p104488"/>
<title type="html"><![CDATA[Re: Obsluga klawiszy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104488#p104488"><![CDATA[
Problem rozwiazany, zaraz wrzuce plik main.c, reszta pozostaje bez zmian (tzn te, ktore wczesniej wrzuciłem)<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />[syntax=cpp]#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include &quot;leds.h&quot;<br /><br /><br />int main(void){<br /><br />uint8_t opcja = 0;<br /><br /> PORTD |= (KEY1|KEY2|KEY3|KEY4);//podciagamy vcc<br /> DDRA  |= (LED1|LED2|LED3|LED4);<br /><br /> _delay_ms(20);//oczekiwanie na ustalenie sie stanu na wej klawissza<br /><br />while(1)<br />{<br /><br />if (KEY1_DOWN)<br />opcja=0;<br /><br />else if (KEY2_DOWN)<br />opcja=1;<br /><br />else if (KEY3_DOWN)<br />opcja=2;<br /><br />else if (KEY4_DOWN)<br />opcja=3;<br /><br />led_set(opcja);<br /><br />}}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Dzieki wielkie za pomoc , pozdrawiam !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6741">kubavit</a> — 17 lis 2014, o 12:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-17T12:36:07+01:00</updated>
<published>2014-11-17T12:36:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104486#p104486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104486#p104486"/>
<title type="html"><![CDATA[Re: Obsluga klawiszy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104486#p104486"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Zmieniajac nazwe define.h na leds.h dalej nie jest zainkludowany plik leds.c.<br /></div><br /><br />Kolega poczytaj bluebooka to wszystko się rozjaśni w tym temacie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 17 lis 2014, o 12:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kubavit]]></name></author>
<updated>2014-11-17T12:18:41+01:00</updated>
<published>2014-11-17T12:18:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104470#p104470</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104470#p104470"/>
<title type="html"><![CDATA[Re: Obsluga klawiszy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104470#p104470"><![CDATA[
Dzieki za szybka odpowiedz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Zmieniajac nazwe define.h na leds.h dalej nie jest zainkludowany plik leds.c.<br />Wchodziłem w pętlę nieskończoną, aby zapętlić sekwencje(nie mam pomyslu jak inaczej to zrobic)<br />A w bluebooku nie jest za wiele na temat przyciskow (chyba ze gdzies DALEJ <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />)<br /><br /><br />P.S. Twoj program narazie mi nie działa ale zaraz bede go analizował i mam nadzieje, że w końcu sie z tym uporam <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=6741">kubavit</a> — 17 lis 2014, o 12:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-17T11:48:05+01:00</updated>
<published>2014-11-17T11:48:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104461#p104461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104461#p104461"/>
<title type="html"><![CDATA[Re: Obsluga klawiszy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104461#p104461"><![CDATA[
Kolega przesyłam Ci trochę zmodyfikowany Twój kod (nietestowany więc zachodzi możliwość, że nie będzie działał), ogólnie robisz parę błędów, ale doczytasz Bluebooka to wszystko ogarniesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Tu kody:<br /><br /><strong>PLIK MAIN.C</strong><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;leds.h&quot;<br /><br />int main(void)<br />{<br />uint8_t opcja = 0;<br /><br /> PORTD |= (KEY1|KEY2|KEY3|KEY4);//podciagamy vcc<br /> DDRA  |= (LED1|LED2|LED3|LED4);//piny jako wy<br /><br /> _delay_ms(20);//oczekiwanie na ustalenie sie stanu na wej klawissza<br /><br />while(1)<br />{<br />//KLAWISZ 1<br />if (KEY1_DOWN)<br />opcja = 0;<br />else if (KEY2_DOWN)<br />opcja = 1;<br />else if (KEY3_DOWN)<br />opcja = 2;<br />else if (KEY4_DOWN)<br />opcja = 3;<br /><br />led_init(opcja);<br /><br />}<br />}[/syntax]<br /><br /><strong>PLIK LEDS.H</strong><br />[syntax=c]//definicja led<br />#define LED1 (1&lt;&lt;PA0)<br />#define LED2 (1&lt;&lt;PA1)<br />#define LED3 (1&lt;&lt;PA2)<br />#define LED4 (1&lt;&lt;PA3)<br />//definicja switch<br />#define KEY1 (1&lt;&lt;PD0)<br />#define KEY2 (1&lt;&lt;PD1)<br />#define KEY3 (1&lt;&lt;PD2)<br />#define KEY4 (1&lt;&lt;PD3)<br />//czy wcisniety<br />#define KEY1_DOWN !(PIND &amp; KEY1)<br />#define KEY2_DOWN !(PIND &amp; KEY2)<br />#define KEY3_DOWN !(PIND &amp; KEY3)<br />#define KEY4_DOWN !(PIND &amp; KEY4)<br /><br />void led_init(uint8_t mode);[/syntax]<br /><br />PLIK LEDS.C<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;leds.h&quot;<br /><br />uint8_t t1&#91;&#93;={1,2,4,8,4,2,1};<br />uint8_t t2&#91;&#93;={1,3,6,12,8};<br />uint8_t t3&#91;&#93;={6,9};<br /><br />void led_init(uint8_t mode)<br />{<br />static uint8_t czas;<br />static uint8_t zmiana_trybu;<br /><br />if( !mode )<br />{<br />if(zmiana_trybu)<br />{<br />czas = 0;<br />zmiana_trybu = 0;<br />}<br />PORTD = t1&#91;czas&#93;;<br />if( ++czas &gt; 6 ) czas = 0; <br />}<br />else if( mode == 1 )<br />{<br />if(zmiana_trybu != 1)<br />{<br />czas = 0;<br />zmiana_trybu = 1;<br />}<br />PORTD = t2&#91;czas&#93;;<br />if( ++czas &gt; 5 ) czas = 0; <br />}<br />else if( mode == 2 )<br />{<br />if(zmiana_trybu != 2)<br />{<br />czas = 0;<br />zmiana_trybu = 2;<br />}<br />PORTD = t3&#91;czas&#93;;<br />if( ++czas &gt; 1 ) czas = 0; <br />}<br />else if( mode == 3 )<br />{<br />if(zmiana_trybu != 3)<br />{<br />czas = 0;<br />PORTD = 0x00;<br />zmiana_trybu = 3;<br />}<br />PORTD ^= 0xFF; <br />}<br /><br />}[/syntax]<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br />Generalnie to dziwi mnie, że nie masz nigdzie zainkludowanego pliku leds a Ci funkcja działa, dlatego u mnie zmieniłem nazwę pliku define.h na leds.h.<br /><br />Funkcja leds_init bardziej by mi się kojarzyła z inicjalizacją, niż z funkcją zmieniania trybu, ale zostawiłem tak jak miałeś.<br /><br />Zmienne int keylock = 1, czy uint16_t key1_lock, key2_lock, na 99% wystarczyłyby uint8_t. Musisz doczytać o zmiennych, bo przy mikrokontrolerach musisz nauczyć się oszczędzać pamięć bo jest jej strasznie mało w porównaniu do PC - to istna przepaść <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A teraz czemu nie możesz wyjść z pętli? Tak na oko to mi się rzuca, że przypisujesz zmiennej key_lock wartość 1 (w pliku leds.c). Teraz wpadasz w pętlę nieskończoną while(1) i tu masz warunek jej przerwania: if (!key_lock &amp;&amp; KEY1_DOWN), czyli jeżeli key_lock będzie posiadał wartość 0. Ale nie ma możliwości aby taką uzyskał <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Bo nigdzie nie ma takiej możliwości w tym while'u.<br /><br />Tak więc polecam doczytać <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=3271">doman89</a> — 17 lis 2014, o 11:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kubavit]]></name></author>
<updated>2014-11-17T09:38:14+01:00</updated>
<published>2014-11-17T09:38:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104436#p104436</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104436#p104436"/>
<title type="html"><![CDATA[Obsluga klawiszy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9295&amp;p=104436#p104436"><![CDATA[
Witam, jestem poczatkujacy i zabralem sie za bluebooka, lecz napotkalem sie na program ze switch'ami. Problem wyglada nastepujaco. Mam 4 switche i chce aby kazdy wykonywal inna sekwencje na diodach. Jestem juz blisko ale gdy wejde w petle jednym przyciskiem to juz kolejnym nie moge wyjsc i zmienic sekwencji mrugania diodami.<br />Prosze o pomoc.<br /><br />P.S w zalaczniku wysylam 3 plikowy program i z gory dzieki za odpowiedz <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=6741">kubavit</a> — 17 lis 2014, o 09:38</p><hr />
]]></content>
</entry>
</feed>