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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-06-04T17:55:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1132&amp;mode</id>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-04T17:55:54+01:00</updated>
<published>2012-06-04T17:55:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7485#p7485</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7485#p7485"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7485#p7485"><![CDATA[
To teraz warto poczytać trochę o timerach programowych skoro to ma być program nie blokujący.<br />Jeden bedzie potrzebny do tego żeby odmierzyć czas po jakim ma mrygać dioda, drugi do czasu przez jaki ma mrygac, a trzeci do tego żeby mrygała w odpowienich odstepach czasu.<br /><br />( Można to jeszcze zrealizować za pomocą jednego lub dwóch timerów oraz enum ale timery wydają się fajniejsze <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=225">Malutki_27</a> — 4 cze 2012, o 17:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-06-04T15:55:55+01:00</updated>
<published>2012-06-04T15:55:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7476#p7476</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7476#p7476"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7476#p7476"><![CDATA[
hehe kris ... paskudny podkradaczu avatarów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />super <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=58">SunRiver</a> — 4 cze 2012, o 15:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-04T15:31:45+01:00</updated>
<published>2012-06-04T15:31:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7473#p7473</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7473#p7473"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7473#p7473"><![CDATA[
Poprawiłem te szczegóły o których napisałeś, a program ma uruchamiać diodę z góry założony czas a później gasnąć i czekać na nowe ustawienia. Chcę stworzyć później większe menu w którym będę mógł wprowadzać dane, potwierdzać je aby się natychmiast wykonywały cofać się do menu i kolejne ustawienia w menu uruchamiać. Chcę aby po zatwierdzeniu ustawień wychodząc do menu nie zostały zatrzymywane bądź przerywane.  <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=202">kris</a> — 4 cze 2012, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-04T09:00:56+01:00</updated>
<published>2012-06-04T09:00:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7444#p7444</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7444#p7444"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7444#p7444"><![CDATA[
No już jest całkiem nie źle <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />W main.c brakuje pętlii while zaraz za funkcą set()<br />W funkcje.h dubluje ci sie deklaracja funcji<br />Przerwanie timera wywal do main.c na sam dół<br />W funkcjach down.select, up_select, screen powiela ci się kod pomyśl nad utworzeniem nowej funcji z tym kodem. ( latwiej wtedy skupic się tylko nad zmianą wartości, i będzie bardzej optymalnie )<br /><br /><br /><br /><br /><br /><div class="quotetitle">kris napisał(a):</div><div class="quotecontent"><br />Opiszę działanie programu do jakiego dążę. Mam menu w którym podaję zmienną &quot;i&quot; która będzie odpowiadała za czas po którym dioda zacznie migać, po wprowadzeniu tej danej chcę wrócić do menu.<br /></div><br />Ponieważ jakoś dzisiaj jestem lekko nie gramotny wytłumacz dokładnie jak ma to działać.<br /><br />Rozumiem że chcesz ustawiać czas po którym ma zacząć migać dioda. Czy ona ma migac później cały czas czy tylko przez z góry założony czas a później gasnąć i czekać na nowe ustawienia ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 4 cze 2012, o 09:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-04T15:25:56+01:00</updated>
<published>2012-06-02T21:01:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7406#p7406</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7406#p7406"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7406#p7406"><![CDATA[
Zrobiłem porządek jeśli coś przegapiłem to niechcący <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />main.c[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2012-06-02<br /> *      Author: Krystian<br /> */<br /><br /><br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;funkcje.h&quot;<br />#define KL1 (1&lt;&lt;PB0)<br />#define KL2 (1&lt;&lt;PB3)<br />#define KL3 (1&lt;&lt;PB2)<br />#define KL4 (1&lt;&lt;PB1)<br />#define LED_PIN (1&lt;&lt;PC2)<br />#define LED_ON PORTC &amp;= ~LED_PIN<br />#define LED_OFF PORTC |= LED_PIN<br />#define LED_TOG PORTC ^= LED_PIN;<br /><br />volatile uint8_t s1_flag, sekundy, cnt;<br /><br />int main(void){<br /><br />lcd_init();<br />/* Timer0 – inicjalizacja przerwania co 10ms */<br />TCCR0 = (1&lt;&lt;WGM01);// tryb pracy CTC<br />TCCR0 = (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0 = 108;// przerwanie porównania co 10ms (100Hz)<br />TIMSK = (1&lt;&lt;OCIE0);// Odblokowanie przerwania CompareMatch<br /><br />sei();<br /><br />set();<br /><br />while(1){<br /><br />}<br />return 0;<br />}<br /><br />ISR (TIMER0_COMP_vect)<br />{<br />if(++cnt&gt;99){<br />s1_flag=1;<br />sekundy++;<br />if(sekundy&gt;59) sekundy=0;<br />cnt=0;<br />}<br />}<br /><br />[/syntax] funkcje.c [syntax=c]/*<br /> * funkcje.c<br /> *<br /> *  Created on: 2012-06-02<br /> *      Author: Krystian<br /> */<br /><br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;funkcje.h&quot;<br />#define KL1 (1&lt;&lt;PB0)<br />#define KL2 (1&lt;&lt;PB3)<br />#define KL3 (1&lt;&lt;PB2)<br />#define KL4 (1&lt;&lt;PB1)<br />#define LED_PIN (1&lt;&lt;PC2)<br />#define LED_ON PORTC &amp;= ~LED_PIN<br />#define LED_OFF PORTC |= LED_PIN<br />#define LED_TOG PORTC ^= LED_PIN;<br /><br />volatile uint8_t s1_flag, sekundy, cnt;<br /><br />uint8_t i;<br /><br />void set(void){<br />PORTB |= KL1|KL2|KL3;<br /><br />screen();<br /><br />while(1){<br /><br />uint8_t k1,k2,k3;<br /><br />SuperDebounce(&amp;k1, &amp;PINB, KL1, 0, 0, down_select, 0 );<br />SuperDebounce(&amp;k2, &amp;PINB, KL2, 0, 0, up_select, 0 );<br />SuperDebounce(&amp;k3, &amp;PINB, KL3, 0, 0, run_dioda, 0 );<br />}<br />}<br /><br /><br />void run_dioda(void){<br /><br />PORTB |= KL4;<br />DDRC |= LED_PIN;<br /><br />while(1){<br />uint8_t k4;<br />                            if(0==(sekundy%i)) LED_TOG;<br />                            _delay_ms(80);<br />                            SuperDebounce(&amp;k4, &amp;PINB, KL4, 0, 0, set, 0 );<br />}<br />}<br /><br />void down_select(void){<br /><br />if(i==1) up_select();<br />menu();<br />lcd_int(i-2);<br />--i;<br />}<br /><br />void up_select(void){<br /><br />menu();<br />lcd_int(i);<br />if(++i&gt;99) i=1;<br />}<br /><br />void screen(void){<br /><br />menu();<br />lcd_int(i-1);<br />}<br /><br />void menu (void){<br /><br />lcd_cls();<br />lcd_locate(0,3);<br />lcd_str(&quot;Podaj czas pracy:&quot;);<br />lcd_locate(1,8);<br />lcd_str(&quot;&gt;&gt;   &lt;&lt;&quot;);<br />lcd_locate(1,11);<br />}<br /><br />[/syntax] funkcje.h [syntax=c]/*<br /> * funkcje.h<br /> *<br /> *  Created on: 2012-06-02<br /> *      Author: Krystian<br /> */<br /><br />#ifndef FUNKCJE_H_<br />#define FUNKCJE_H_<br /><br />void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN,<br />uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait,<br />void (*push_proc)(void), void (*rep_proc)(void) );<br /><br />int main(void);<br /><br />void menu (void);<br /><br />void set(void);<br /><br />void screen(void);<br /><br />void up_select(void);<br /><br />void down_select(void);<br /><br />void run_dioda(void);<br /><br />void set(void);<br /><br />#endif /* FUNKCJE_H_ */<br /><br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 2 cze 2012, o 21:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-01T16:00:21+01:00</updated>
<published>2012-06-01T16:00:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7362#p7362</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7362#p7362"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7362#p7362"><![CDATA[
<div class="quotetitle">kris napisał(a):</div><div class="quotecontent"><br />To co widać jest w pliku z rozszerzeniem .h więc superD jest zadeklarowane i działa prawidłowo proszę tylko spojrzeć na funkcję run_dioda i spróbować pomoc<br /></div><br /><br />łeeech ... zajrzałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />jeśli to wszystko jest w pliku *.h to:<br /><br />1. albo na co dzień programujesz w C++ na PC i strasznie myli ci się wszystko - ponieważ tam umieszcza się definicje funkcji<br /><br />2. albo właśnie totalnie źle na razie rozumiesz jak rozmieszcza się definicje i deklaracje w plikach *.c i *.h w języku C bo tu jest różnica <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />więc trza wrócić do źródeł i jak najszybciej poprawić to<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 cze 2012, o 16:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-01T15:05:57+01:00</updated>
<published>2012-06-01T15:05:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7361#p7361</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7361#p7361"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7361#p7361"><![CDATA[
No popraw, i dopiero wtedy będziemy gadać co jest źle ......... a jest duuuużo<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 1 cze 2012, o 15:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-01T15:03:25+01:00</updated>
<published>2012-06-01T15:03:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7360#p7360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7360#p7360"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7360#p7360"><![CDATA[
dzięki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> poprawię i zobaczę co dalej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 cze 2012, o 15:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-01T14:59:08+01:00</updated>
<published>2012-06-01T14:59:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7359#p7359</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7359#p7359"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7359#p7359"><![CDATA[
No to staramy się ......... całkowicie zapomniałeś o sekcjach w mian.c , doczytaj o tym.<br /><br />No to super że jest w pliku .h tylko z ciekawości powiedz którym, a skoro jest w tym pliku to po co ci w main.c deklaracja tego ?<br /><br />void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN,<br />                uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait<br />                void (*push_proc)(void), void (*rep_proc)(void) );<br /><br />Więc patrzę w run_dioda i widzę to :<br /><br />                TCCR0   = (1&lt;&lt;WGM01);                   // tryb pracy CTC<br />                TCCR0   = (1&lt;&lt;CS02)|(1&lt;&lt;CS00);  // preskaler = 1024<br />                OCR0    = 108;                                  // przerwanie porównania co 10ms (100Hz)<br />                TIMSK   = (1&lt;&lt;OCIE0);    <br /><br />I odpowiadam NIE MA PRAWA TUTAJ TO BYĆ <br />Wniosek ? <br />Sprawdź jak powinien wyglądać prawidłowy main.c ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 1 cze 2012, o 14:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-01T14:39:17+01:00</updated>
<published>2012-06-01T14:39:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7357#p7357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7357#p7357"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7357#p7357"><![CDATA[
To co widać jest w pliku z rozszerzeniem .h więc superD jest zadeklarowane i działa prawidłowo proszę tylko spojrzeć na funkcję run_dioda i spróbować pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 cze 2012, o 14:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-06-01T14:37:48+01:00</updated>
<published>2012-06-01T14:37:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7356#p7356</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7356#p7356"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7356#p7356"><![CDATA[
O matko i córko , .....   biedne eclipse ... o kompilatorze nie wspomnę <br />Mirek nawet niech tu nie zagląda ... aż się boje o jego serce<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 1 cze 2012, o 14:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-01T14:28:05+01:00</updated>
<published>2012-06-01T14:28:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7355#p7355</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7355#p7355"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7355#p7355"><![CDATA[
Jessuuu, żeby tylko tego Mirek nie zobaczył bo padnie na miejscu .........<br /><br />No dobra to po kolei, poczytaj z jakich sekcji powinien skladać się plik main.c , korzystasz  z funkcji SuperDepounce ale biblioteki już nie masz podłączonej.<br /><br />W tej formie nie ma prawa działać to co napisałeś.<br /><br />To na razie tyle,doczytaj o tym popraw plik i zamieść go jeszcze raz ale już poprawiony .<br /><br /><br />I żeby było jasne błedów jest tutaj od groma, ale od czegoś musisz zacząć <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=225">Malutki_27</a> — 1 cze 2012, o 14:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-01T14:09:49+01:00</updated>
<published>2012-06-01T14:09:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7354#p7354</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7354#p7354"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7354#p7354"><![CDATA[
Więc podaję kod źródłowy, moje wypociny <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> w main wywołuję funkcję set() [syntax=c]#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/io.h&gt;<br />#define LED_PIN (1&lt;&lt;PC2)<br />#define LED_ON PORTC &amp;= ~LED_PIN<br />#define LED_OFF PORTC |= LED_PIN<br />#define LED_TOG PORTC ^= LED_PIN;<br />#define KL1 (1&lt;&lt;PB0)<br />#define KL2 (1&lt;&lt;PB3)<br />#define KL3 (1&lt;&lt;PB2)<br />#define KL4 (1&lt;&lt;PB1)<br />#define KEY_DOWN !(PINB &amp; KL4)<br /><br />volatile uint8_t s1_flag, sekundy, cnt;<br /><br />uint8_t i=1;<br /><br />void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN,<br />uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait,<br />void (*push_proc)(void), void (*rep_proc)(void) );<br /><br />void set(void);<br /><br />void screen(void){<br /><br />lcd_locate(0,3);<br />lcd_str(&quot;Podaj czas pracy:&quot;);<br />lcd_locate(1,8);<br />lcd_str(&quot;&gt;&gt;   &lt;&lt;&quot;);<br />lcd_locate(1,11);<br />lcd_int(i-1);<br />}<br /><br />void up_select(void){<br /><br />lcd_cls();<br />lcd_locate(0,3);<br />lcd_str(&quot;Podaj czas pracy:&quot;);<br />lcd_locate(1,8);<br />lcd_str(&quot;&gt;&gt;   &lt;&lt;&quot;);<br />lcd_locate(1,11);<br />lcd_int(i);<br />if(++i&gt;99) i=1;<br />}<br /><br />void down_select(void){<br /><br />if(i==1) up_select();<br />lcd_cls();<br />lcd_locate(0,3);<br />lcd_str(&quot;Podaj czas pracy:&quot;);<br />lcd_locate(1,8);<br />lcd_str(&quot;&gt;&gt;   &lt;&lt;&quot;);<br />lcd_locate(1,11);<br />lcd_int(i-2);<br />--i;<br />}<br /><br />void run_dioda(void){<br /><br />/* Timer0 – inicjalizacja przerwania co 10ms */<br />TCCR0 = (1&lt;&lt;WGM01);// tryb pracy CTC<br />TCCR0 = (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0 = 108;// przerwanie porównania co 10ms (100Hz)<br />TIMSK = (1&lt;&lt;OCIE0);// Odblokowanie przerwania CompareMatch<br /><br />sei();<br /><br />PORTB |= KL4;<br />DDRC |= LED_PIN;<br /><br />while(1){<br />uint8_t k4;<br />                            if(0==(sekundy%i)) LED_TOG;<br />                            _delay_ms(80);<br />                            SuperDebounce(&amp;k4, &amp;PINB, KL4, 0, 0, set, 0 );<br />}<br /><br />/*while(1){<br />uint8_t k4;<br />SuperDebounce(&amp;k4, &amp;PINB, KL4, 0, 0, set, 0 );<br />}*/<br />}<br /><br />void set(void){<br />PORTB |= KL1|KL2|KL3;<br /><br />screen();<br /><br />while(1){<br /><br />uint8_t k1,k2,k3;<br /><br />SuperDebounce(&amp;k1, &amp;PINB, KL1, 0, 0, down_select, 0 );<br />SuperDebounce(&amp;k2, &amp;PINB, KL2, 0, 0, up_select, 0 );<br />SuperDebounce(&amp;k3, &amp;PINB, KL3, 0, 0, run_dioda, 0 );<br />}<br />}<br /><br /><br /><br /><br /><br />ISR (TIMER0_COMP_vect)<br />{<br />if(++cnt&gt;99){<br />s1_flag=1;<br />sekundy++;<br />if(sekundy&gt;59) sekundy=0;<br />cnt=0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 cze 2012, o 14:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-01T14:00:56+01:00</updated>
<published>2012-06-01T14:00:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7353#p7353</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7353#p7353"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7353#p7353"><![CDATA[
To więc tak, według mnie brniesz w jakiś ślepy zaułek, ponieważ takie działanie będzie &quot;blokować&quot; uC, a prostym przykładem tego jest delay który wstawiłes do kodu a równocześnie wykorzystujesz SuperDebounce .......... więc ponawiam wklej cały main.c , bez tego naprawdę nie bardzo możemy cię naprowadzić na jakieś rozwiązanie, czy też pomóc w &quot;naprostowaniu&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> twojego myślenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 1 cze 2012, o 14:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-01T13:49:06+01:00</updated>
<published>2012-06-01T13:49:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7352#p7352</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7352#p7352"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7352#p7352"><![CDATA[
Z pętli się wydostaję tylko gdy z niej wychodzę zostaje przerwana, co można by zrobić aby po wyjściu z niej nie została przerwana? [syntax=c]while(1){<br />uint8_t k4;<br /><br />    if(0==(sekundy%i)) LED_TOG;<br />    _delay_ms(80);<br />SuperDebounce(&amp;k4, &amp;PINB, KL4, 0, 0, set, 0 );<br /><br /><br />}[/syntax] Opiszę działanie programu do jakiego dążę. Mam menu w którym podaję zmienną &quot;i&quot; która będzie odpowiadała za czas po którym dioda zacznie migać, po wprowadzeniu tej danej chcę wrócić do menu. Udało mi się wydostać z pętli ale zostaje przerwana a chcę aby po wprowadzeniu zmiennej wykonywało się to niezależnie od tego czy cofnę się do menu czy nie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 cze 2012, o 13:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-01T12:57:52+01:00</updated>
<published>2012-06-01T12:57:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7349#p7349</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7349#p7349"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7349#p7349"><![CDATA[
<div class="quotetitle">kirex napisał(a):</div><div class="quotecontent"><br />Tylko jak wyjdzie z while, &quot;break&quot; powinien wystarczyć, to się program skończy <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />No chyba, że po dordze jest kolejna nieskończona pętla, to wtedy jeszcze sobie podziała.<br /></div><br /><br /><br />Dlatego własnie poprosiłem żeby wrzucił cały kod , z małym opisem co chce uzyskać, bo to mi jakoś nie comprende <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />jest sobie jakaś flaga tylko nie wiadomo od czego, domyślam się że to z jakiegoś przerwania ale nie wiadomo czmu ma tyo służyć, widzę jakis licznik tylko nie wiadomo co liczy .......... i dlatego się upieram przy pokazaniu kodu <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=225">Malutki_27</a> — 1 cze 2012, o 12:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kirex]]></name></author>
<updated>2012-06-01T12:50:35+01:00</updated>
<published>2012-06-01T12:50:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7348#p7348</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7348#p7348"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7348#p7348"><![CDATA[
Tylko jak wyjdzie z while, &quot;break&quot; powinien wystarczyć, to się program skończy <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />No chyba, że po dordze jest kolejna nieskończona pętla, to wtedy jeszcze sobie podziała.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=306">kirex</a> — 1 cze 2012, o 12:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-06-01T12:46:28+01:00</updated>
<published>2012-06-01T12:46:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7347#p7347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7347#p7347"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7347#p7347"><![CDATA[
Ok, no to może innaczej, warunkiem wyjścia z pętli (while) jest nie spełnienie warunku while(<strong><span style="color: #FF0000">1</span></strong>) , ponieważ masz &quot;1&quot; to warunek zawsze będzie spełniony, co znaczy że pętla będzie się wykonywała do końca świata i jeden dzień dłużej .....<br /><br />Teraz troszkę jaśniej ? <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=225">Malutki_27</a> — 1 cze 2012, o 12:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jachu]]></name></author>
<updated>2012-06-01T12:45:23+01:00</updated>
<published>2012-06-01T12:45:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7346#p7346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7346#p7346"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7346#p7346"><![CDATA[
<div class="quotetitle">kirex napisał(a):</div><div class="quotecontent"><br />ee, przecież ja nie mam avatara :p<br /></div><br /><br />sorki chodzi o kris-a <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=110">jachu</a> — 1 cze 2012, o 12:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kirex]]></name></author>
<updated>2012-06-01T12:39:27+01:00</updated>
<published>2012-06-01T12:39:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7345#p7345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7345#p7345"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7345#p7345"><![CDATA[
ee, przecież ja nie mam avatara :p<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=306">kirex</a> — 1 cze 2012, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jachu]]></name></author>
<updated>2012-06-01T12:38:57+01:00</updated>
<published>2012-06-01T12:38:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7344#p7344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7344#p7344"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7344#p7344"><![CDATA[
Kirex - widze ze podprowadziles komus awatar .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=110">jachu</a> — 1 cze 2012, o 12:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kirex]]></name></author>
<updated>2012-06-01T12:41:06+01:00</updated>
<published>2012-06-01T12:38:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7343#p7343</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7343#p7343"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7343#p7343"><![CDATA[
Mozesz sobie zrobić tak:<br /><br />[syntax=c]<br />while(1) {<br />    switch(__prametr_z_przerwania__) {<br />       case '1': <br />           jakas_funkcja_z_poza_petli; <br />       break;<br /><br />       default: <br />           domyslna_funkcja;<br />    }<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=306">kirex</a> — 1 cze 2012, o 12:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-01T12:08:46+01:00</updated>
<published>2012-06-01T12:08:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7339#p7339</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7339#p7339"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7339#p7339"><![CDATA[
W tym kodzie jest już zastosowany do mrugania diodą, w książce jest dobrze wytłumaczone tylko w tym konkretnym przypadku nie wiem jak wykorzystać przerwanie aby się wydostać z pętli i wykonywać inne zadania równlolegle.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=202">kris</a> — 1 cze 2012, o 12:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kirex]]></name></author>
<updated>2012-06-01T11:52:04+01:00</updated>
<published>2012-06-01T11:52:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7332#p7332</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7332#p7332"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7332#p7332"><![CDATA[
Musisz skorzystać z przerwań, w książce masz to ładnie opisane.<br /><br />Czyli pętelka sobie leci wykonuje jakieś tam pierdoły a Ty za pomoca przerwania timera &quot;mrygasz&quot; sobie diodą (zmieniasz stan na pinie)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=306">kirex</a> — 1 cze 2012, o 11:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kris]]></name></author>
<updated>2012-06-01T11:39:38+01:00</updated>
<published>2012-06-01T11:39:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7327#p7327</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7327#p7327"/>
<title type="html"><![CDATA[Re: Pętla while i Timer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1132&amp;p=7327#p7327"><![CDATA[
Nie wyraziłem się jasno, chodzi mi o to aby ta pętla wykonywała się cały czas ale chcę wiedzieć w jaki sposób mogę do niej wchodzić/wychodzić i modyfikować zmienne inną funkcją zewnętrzną <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=202">kris</a> — 1 cze 2012, o 11:39</p><hr />
]]></content>
</entry>
</feed>