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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-02-23T14:02:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=871&amp;mode</id>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-23T14:02:51+01:00</updated>
<published>2012-02-23T14:02:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3388#p3388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3388#p3388"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3388#p3388"><![CDATA[
Faktycznie. Jak zwiększyłem sobie _util_delay() to zauważyłem. Zwracam honor <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=240">tkpoum</a> — 23 lut 2012, o 14:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DidekxD]]></name></author>
<updated>2012-02-23T13:38:46+01:00</updated>
<published>2012-02-23T13:38:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3387#p3387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3387#p3387"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3387#p3387"><![CDATA[
Tak ale zostaje Ci jedna dioda zapalona <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> nie gasi wszystkich <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> jak przeanalizujesz moje rozwiązania z tamtego tematu to zobaczysz że podałem dwa rozwiązania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Takie jak podał kolega worner i takie jak ty, tyle że z dodatkową zmienną która sprawia że wszystkie diody się gaszą <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Z resztą.<br />Jest na to 1000 sposobów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> (Jak powiedział sam Pan Mirek)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=146">DidekxD</a> — 23 lut 2012, o 13:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-23T13:31:07+01:00</updated>
<published>2012-02-23T13:31:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3386#p3386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3386#p3386"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3386#p3386"><![CDATA[
Hm, mi działa z uint8_t <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Przeanalizowałem post kolegi sprzed ok. miesiąca<a href="http://forum.atnel.pl/topic128.html"  class="postlink">http://forum.atnel.pl/topic128.html</a>.<br />Zdaje mi się, że jest mała różnica między naszymi licznikami. Podałeś: [syntax=c] for(int8_t i=7;i&gt;=0;i--)[/syntax] ja natomiast [syntax=c]for (uint8_t i=8; i&gt;0; i--)[/syntax] Czyli wg. mnie moje &quot;i&quot; nie dochodzi do -1 (czyli de facto 255), czyli mieszczę się w zakresie uint8_t.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=240">tkpoum</a> — 23 lut 2012, o 13:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-23T12:48:53+01:00</updated>
<published>2012-02-23T12:48:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3383#p3383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3383#p3383"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3383#p3383"><![CDATA[
Na samym początku powiem, że w wyniku instrukcji z linii 49 i 55 zapali się tylko 7 diod, i zgaśnie tylko 7, a dokładniej jedna zostanie zapalona. Przerabiałem to dość dokładnie. Warunek ten musi wyglądać mniej więcej tak:<br /><br />[syntax=c]<br />for(int8_t i=0;i&lt;=7;i++)<br />for(int8_t i=7;i&gt;=0;--i)<br />[/syntax]<br /><br />Kluczową rolę odgrywa tu deklaracja zmiennej i. <span style="color: #FF0000">Musi ona być typu int, a nie uint.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 23 lut 2012, o 12:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-23T12:26:13+01:00</updated>
<published>2012-02-23T12:26:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3382#p3382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3382#p3382"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3382#p3382"><![CDATA[
Aha, jeszcze do niego nie doszedłem. Skoro tak, to odkładam to pytanie na potem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Pozdro!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=240">tkpoum</a> — 23 lut 2012, o 12:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoreX]]></name></author>
<updated>2012-02-23T12:10:41+01:00</updated>
<published>2012-02-23T12:10:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3381#p3381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3381#p3381"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3381#p3381"><![CDATA[
Myślę że w rozdziale pt. &quot;Systemy czasu rzeczywistego&quot; znajdziesz odpowiedz na nurtującą Cię zagadkę<br /><br />Pozdrawiam<br />KoreX<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=229">KoreX</a> — 23 lut 2012, o 12:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-23T11:49:52+01:00</updated>
<published>2012-02-23T11:49:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3380#p3380</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3380#p3380"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3380#p3380"><![CDATA[
Żeby nie zakładać nowego wątku...<br />Zmodyfikowałem powyższy kod dodając funkcję dioda. Powoduje ona zaświecenie się diodek od lewej do prawej a potem od prawej do lewej. Chcę osiągnąć taki efekt, że cały czas będzie uruchomiona funkcja dioda() natomiast w momencie załączenia funkcji przerwij() - (wciśnięcie przycisku), wyskoczę z f. dioda() i będę w f. inkrement_switch(). Jeżeli umieszczę IF(przerwij) na końcu f. dioda(), to muszę się idealnie wstrzelić (aż się skończy wykonywać druga pętla for i nie zacznie pierwsza), by wyskoczyć z tej funkcji - w tej wersji wklejam kod. [syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br />#include &quot;pomocniczny.h&quot;<br />#include &lt;util/delay.h&gt;<br /><br />#define SWITCH_ON !(PIND&amp;(1&lt;&lt;PD4))<br />#define SWITCH_ON1 !(PIND&amp;(1&lt;&lt;PD5))<br /><br /><br />void dioda (void);<br />void inkrement_switch (void);<br />uint8_t przerwij1(void);<br /><br /><br /><br />int main(void)<br />{<br />d_led_init();<br />cy1=0;<br />cy2=0;<br />cy3=0;<br />cy4=0;<br /><br />sei();<br /><br />PORTD|=(1&lt;&lt;PD4)|(1&lt;&lt;PD5); //podłączam pod Vcc, np. do funkcji inkrement_switch<br />DDRB=0xFF; //PORTB jako wyjscie<br />PORTB=0xFF;//diody wyłączone<br /><br /><br /><br />dioda();<br /><br />while (1)<br />{<br />inkrement_switch();<br />}<br /><br />}<br /><br /><br /><br />void dioda (void)<br />{<br />while(1)<br />{<br />//diodki świecą od lewej do prawej, każda zapala się raz<br />for (uint8_t i=0;i&lt;8;i++)<br />{<br />PORTB=~(1&lt;&lt;i);//zapalam diodkę nr i<br />_delay_ms(100);<br />}<br />//diodki świecą się od prawej do lewej, każda tylko raz<br />for (uint8_t i=8; i&gt;0; i--)<br />{<br />PORTB=~(1&lt;&lt;i);//zapalam diodkę nr i<br />_delay_ms(100);<br />}<br />if(przerwij((1&lt;&lt;PD4)))<br />{<br />_delay_ms(3000);//sprawdzam, czy działa mi f. przerwij (1dna diodka świeci 3s.)<br />inkrement_switch();<br />break;<br />}<br /><br />}<br />}<br /><br /><br />uint8_t licznik1;<br />uint8_t licznik2;<br />uint8_t licznik3;<br />uint8_t licznik4;<br />void inkrement_switch (void)<br />{<br /><br />//licznik4, licznik3, licznik2 oraz licznik1 pracują w zakresie od 0-10, wyświetlają cyfry odpowiednio na<br />//4tym, 3cim, 2gim i 1wszym segmencie,<br />//w przypadku gdy któryś licznik osiągnie 10-zeruje się i zlicza od nowa, a liczbę pełnych 10tek podaje na kolejny<br />//licznik, np licznik4 na licznik3, licznik3 na licznik2 itd.<br /><br />if (przerwij1())//każde wciśnięcie klawisza podpiętego pod PD4...<br />{<br />licznik4++;// zwiększa licznik4 o 1 (licznik4 wyswietla liczby na 4tym segmencie)<br />_delay_ms(100);<br />cy4=licznik4;//podaję wartość licznika4 na wyświetlacz<br />} else<br />if (licznik4==10)//jeżeli dojdzie do 10<br />{<br />licznik3++;//licznik3 dostaje do pamięci liczbę 10tek licznika4<br />licznik4=0;//podaje cyfre na 4-ty wyświetlacz<br />cy3=licznik3;//podaje, ile razy licznik4 osiągnął liczbę 10<br />} else<br /><br />if (licznik3==10) //analogicznie jw<br />{<br />licznik2++;<br />licznik3=0;<br />cy2=licznik2;//drugi wyświetlacz<br />} else<br /><br />if (licznik2==10)<br />{<br />licznik1++;<br />licznik2=0;<br />cy1=licznik1;//pierwszy wyświetlacz<br />}<br /><br />}<br /><br /><br /><br />uint8_t przerwij1(void)<br /><br />{<br />if (SWITCH_ON1)//SWITCH_ON1 = !(PIND&amp;(1&lt;&lt;PD5))<br />{<br />_delay_ms(80);<br />if (SWITCH_ON1) return 1;<br />} return 0;<br />}<br />[/syntax] <br />Jeżeli zrobię coś takiego:<br />[syntax=c]for (uint8_t i=0;i&lt;8;i++)<br />{<br />PORTB=~(1&lt;&lt;i);//zapalam diodkę nr i<br />_delay_ms(100);<br />if(przerwij((1&lt;&lt;PD4)))<br />{<br />_delay_ms(3000);//sprawdzam, czy działa mi f. przerwij (1dna diodka świeci 3s.)<br />inkrement_switch();<br />break;<br />}<br />}[/syntax]<br />to wyskoczę z FOR.<br />Jak sobie poradzić w takiej sytuacji? Każda sugestia mile widziana <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=240">tkpoum</a> — 23 lut 2012, o 11:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-22T22:46:15+01:00</updated>
<published>2012-02-22T22:46:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3345#p3345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3345#p3345"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3345#p3345"><![CDATA[
Oczywiście, że dostrzegamy zalety udzielania się na tymże forum w taki właśnie, a nie inny sposób, czyli poprzez pomaganie innym i braniem czynnego udziału w rozwiązywaniu problemów. Już kiedyś to napisałem: <strong><span style="color: #FF0000">nie ma lepszego debbugera nad to forum!</span></strong> Basta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 22 lut 2012, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-22T22:05:59+01:00</updated>
<published>2012-02-22T22:05:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3336#p3336</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3336#p3336"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3336#p3336"><![CDATA[
A ja się cieszę, że udało się rozwiązać problem bez mojej pomocy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> SUPER! i gratulacje<br /><br />przy okazji panowie podpowiem wam tajemnicę moją - mnie np najlepiej się uczy i utrwala materiał poprzez to że staram się kogoś uczyć lub podpowiadać - a nawet jeśli popełnię błędy i ktoś mnie poprawi - to co? to tylko z coraz większą korzyścią dla mnie.<br /><br />Dlatego takie czynne pomaganie innym - wg mnie potęguje efekt uczenia się samemu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> - dostrzegacie też to ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 lut 2012, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-22T18:04:23+01:00</updated>
<published>2012-02-22T18:04:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3326#p3326</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3326#p3326"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3326#p3326"><![CDATA[
Jednak my, początkujący lepiej umieszczajmy całe swoje kody, bo po lekturze pierwszego postu nie wyłapałbym tego. A jak kolega już umieścił cały kod, to od razu wpadło w oczy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 22 lut 2012, o 18:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-22T18:01:17+01:00</updated>
<published>2012-02-22T18:01:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3325#p3325</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3325#p3325"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3325#p3325"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Czyli to o czym wspominałem wyżej<br /></div> Faktycznie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Tak się skupiłem na napisaniu komentarzy, że nie przetrawiłem trafnej uwagi. Thx <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=240">tkpoum</a> — 22 lut 2012, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-22T18:00:19+01:00</updated>
<published>2012-02-22T18:00:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3324#p3324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3324#p3324"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3324#p3324"><![CDATA[
Cieszę się, że mogłem pomóc, choć ja też jestem początkującym i też często potrzebuję pomocy. Tak na marginesie powiem, że również jestem  na etapie zabawy wyświetlaczami LED i również miałem zamiar pobawić się przyciskiem i licznikiem wciśnięć. Dlatego też pozwolę sobie skopiować pomysł kolegi i popracować na żywym organizmie.  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 22 lut 2012, o 18:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DidekxD]]></name></author>
<updated>2012-02-22T17:51:39+01:00</updated>
<published>2012-02-22T17:51:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3320#p3320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3320#p3320"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3320#p3320"><![CDATA[
<div class="quotetitle">DidekxD napisał(a):</div><div class="quotecontent"><br />A nie wydaje Ci się że za każdym razem gdy wywołujesz funkcje '    void inkrement_switch (void)'  zerujesz wszystkie zmienne 'cyX' ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]    void inkrement_switch (void)<br />    {<br />            cy1=0;     <br />            cy2=0;<br />            cy3=0;<br />            cy4=0;[/syntax]<br /></div><br /><br /><br />Czyli to o czym wspominałem wyżej <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=146">DidekxD</a> — 22 lut 2012, o 17:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-22T17:48:01+01:00</updated>
<published>2012-02-22T17:48:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3318#p3318</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3318#p3318"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3318#p3318"><![CDATA[
Linijkę 6 zakomentowałem przypadkowo, jak wysyłałem post z kodem (podczas usuwania zbędnego kodu programu).<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />I jeszcze jedno mi się rzuciło w oczy: każde wejście w funkcję obsługi przycisku <br />void inkrement_switch (void) <br />powoduje najpierw zerowanie wszystkich wyświetlaczy. A więc już przy drugim wciśnięciu klawisza licznik będzie nadal pokazywał 1<br /></div> To było to <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Usunąłem zerowanie na starcie i śmiga tak jak chciałem:) <br />Wielkie dzięki wszystkim za zainteresowanie i okazaną pomoc <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=240">tkpoum</a> — 22 lut 2012, o 17:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-22T17:28:14+01:00</updated>
<published>2012-02-22T17:28:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3317#p3317</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3317#p3317"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3317#p3317"><![CDATA[
A dlaczego jest zakomentowana linijka nr 6 załączająca plik opóźnień?<br /><br />I jeszcze jedno mi się rzuciło w oczy: każde wejście w funkcję obsługi przycisku <br />void inkrement_switch (void) <br />powoduje najpierw zerowanie wszystkich wyświetlaczy. A więc już przy drugim wciśnięciu klawisza licznik będzie nadal pokazywał 1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 22 lut 2012, o 17:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-22T16:59:29+01:00</updated>
<published>2012-02-22T16:59:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3316#p3316</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3316#p3316"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3316#p3316"><![CDATA[
Ok, a więc wklejam kod z dopisanymi komentarzami, mam nadzieje, ze w miarę zrozumiale opisałem (dla siebie w przyszłości też <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />). Pousuwałem inne funkcje, by nie zamydlać interesującego kodu, mam nadzieję, że żadne starocia nie zostawiłem.<br />Chodzi mi o to, by każde wciśnięcie przycisku wyświetlało na wyświetlaczu cyfrę o 1 większą<br />[syntax=c]<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br />//#include &quot;pomocniczny.h&quot;<br />//#include &lt;util/delay.h&gt;<br />#define SWITCH_ON1 !(PIND&amp;(1&lt;&lt;PD5))<br /><br />void inkrement_switch (void);<br />uint8_t przerwij1(void);<br /><br /><br />int main(void)<br />{<br />d_led_init();<br />cy1=0;<br />cy2=0;<br />cy3=0;<br />cy4=0;<br /><br />sei();<br /><br />PORTD|=(1&lt;&lt;PD4)|(1&lt;&lt;PD5); //podłączam pod Vcc, np. do funkcji inkrement_switch<br /><br /><br />while(1)<br />{<br />inkrement_switch();//wywołanie funkcji<br />}<br /><br />}<br /><br /><br />void inkrement_switch (void)<br />{<br />cy1=0;//ustawiam na start 0<br />cy2=0;//jw<br />cy3=0;//jw<br />cy4=0;//jw<br />//licznik4, licznik3, licznik2 oraz licznik1 pracują w zakresie od 0-10, wyświetlają cyfry odpowiednio na<br />//4tym, 3cim, 2gim i 1wszym segmencie,<br />//w przypadku gdy któryś licznik osiągnie 10-zeruje się i zlicza od nowa, a liczbę pełnych 10tek podaje na kolejny<br />//licznik, np licznik4 na licznik3, licznik3 na licznik2 itd.<br /><br />if (przerwij1())//każde wciśnięcie klawisza podpiętego pod PD4...<br />{<br />licznik4++;// zwiększa licznik4 o 1 (licznik4 wyswietla liczby na 4tym segmencie)<br />_delay_ms(1000);<br />cy4=licznik4;//podaję wartość licznika4 na wyświetlacz<br />} else<br />if (licznik4==10)//jeżeli dojdzie do 10<br />{<br />licznik3++;//licznik3 dostaje do pamięci liczbę 10tek licznika4<br />licznik4=0;//podaje cyfre na 4-ty wyświetlacz<br />cy3=licznik3;//podaje, ile razy licznik4 osiągnął liczbę 10<br />} else<br /><br />if (licznik3==10) //analogicznie jw<br />{<br />licznik2++;<br />licznik3=0;<br />cy2=licznik2;//drugi wyświetlacz<br />} else<br /><br />if (licznik2==10)<br />{<br />licznik1++;<br />licznik2=0;<br />cy1=licznik1;//pierwszy wyświetlacz<br />}<br /><br />}<br /><br /><br />uint8_t przerwij1(void)<br /><br />{<br />if (SWITCH_ON1)//SWITCH_ON1 = !(PIND&amp;(1&lt;&lt;PD5))<br />{<br />_delay_ms(80);<br />if (SWITCH_ON1) return 1;<br />} return 0;<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=240">tkpoum</a> — 22 lut 2012, o 16:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-22T15:40:46+01:00</updated>
<published>2012-02-22T15:40:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3311#p3311</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3311#p3311"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3311#p3311"><![CDATA[
Nie wykluczone, ale skoro nie widać, to warto zapytać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 22 lut 2012, o 15:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DidekxD]]></name></author>
<updated>2012-02-22T15:32:48+01:00</updated>
<published>2012-02-22T15:32:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3309#p3309</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3309#p3309"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3309#p3309"><![CDATA[
Sądzę że to tylko fragment większego kodu. Dla tego nie widać tego o czym wspomniałeś.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=146">DidekxD</a> — 22 lut 2012, o 15:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2012-02-22T15:25:00+01:00</updated>
<published>2012-02-22T15:25:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3308#p3308</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3308#p3308"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3308#p3308"><![CDATA[
A czy kolega nie zapomniał o pętli nieskończonej while?<br />Bo jeśli tak, to program wykona się raz zanim jeszcze wciśnie się przycisk i potem stoi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 22 lut 2012, o 15:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-22T15:11:14+01:00</updated>
<published>2012-02-22T15:11:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3306#p3306</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3306#p3306"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3306#p3306"><![CDATA[
<div class="quotetitle">DidekxD napisał(a):</div><div class="quotecontent"><br />A i przydały by się komentarze żeby wiadomo co ma co robić. Nie tylko dla nas ale dla samego siebie powinieneś komentować kod. Z resztą w książce była o tym mowa.<br /></div><br /><br />A ja myślę, że od tego trzeba wręcz zacząć bo na prawdę przykro mi ale sam jestem pełen podziwu dla kolegi DidekxD, że coś podpowiada i widzi w tym kodzie - ja niestety na razie nie mogę się połapać - a nie mam na razie dużo czasu na analizę ..... dlatego mnie tu nie widać....<br /><br />proszę jak dla mnie jeszcze raz określić cele<br /><br />pokazać kod z kometarzami<br /><br />umieścić go w znacznikach syntax = c zamiast code (tak jak to zrobiłem za kolegę w pierwszym poście) - nie czyta się go teraz lepiej ?<br /><br />To potem postaram się pomóc o ile wcześniej się nie uda komuś innemu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 lut 2012, o 15:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DidekxD]]></name></author>
<updated>2012-02-22T15:08:32+01:00</updated>
<published>2012-02-22T15:08:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3305#p3305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3305#p3305"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3305#p3305"><![CDATA[
A nie wydaje Ci się że za każdym razem gdy wywołujesz funkcje '    void inkrement_switch (void)'  zerujesz wszystkie zmienne 'cyX' ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]    void inkrement_switch (void)<br />    {<br />            cy1=0;     <br />            cy2=0;<br />            cy3=0;<br />            cy4=0;[/syntax]<br /><br /><br />Co w ogóle teraz się dzieje na wyświetlaczach ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=146">DidekxD</a> — 22 lut 2012, o 15:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-22T15:00:12+01:00</updated>
<published>2012-02-22T15:00:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3304#p3304</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3304#p3304"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3304#p3304"><![CDATA[
Tak, tak, zorientowałem się po Twojej pierwszej podpowiedzi. Dałem coś takiego:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if (przerwij1())<br />   {<br />   licznik4++;<br />   _delay_ms(1000);<br />   cy4=licznik4;<br />   }</div> Ale dalej nie działa. He, he, ale buła <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=240">tkpoum</a> — 22 lut 2012, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DidekxD]]></name></author>
<updated>2012-02-22T14:47:33+01:00</updated>
<published>2012-02-22T14:47:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3303#p3303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3303#p3303"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3303#p3303"><![CDATA[
aaa panie po pierwszym ifie chyba zapomniałeś o klamrach<br /><br />[syntax=c]            if (przerwij1())      // tu się nic nie dzieje<br />            licznik4++;                         // cały czas zwiększa licznik o 1<br />            _delay_ms(100);<br />            cy4=licznik4;<br />            //_delay_ms(10);[/syntax]<br /><br />zwracasz do funkcji if '1' jeśli był wciśnięty guzik lub zero jeżeli nie. <br />U mnie to w ogóle się nie kompiluje<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=146">DidekxD</a> — 22 lut 2012, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DidekxD]]></name></author>
<updated>2012-02-22T14:37:00+01:00</updated>
<published>2012-02-22T14:37:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3302#p3302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3302#p3302"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3302#p3302"><![CDATA[
Dobra wybacz mój błąd zapomniałem że 'return' kończy funkcje <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />w ramach przeprosin spróbuje się bardziej wgłębić w to i sprawdzić co jest nie tak.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=146">DidekxD</a> — 22 lut 2012, o 14:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tkpoum]]></name></author>
<updated>2012-02-22T14:30:54+01:00</updated>
<published>2012-02-22T14:30:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3301#p3301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3301#p3301"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7-segmentowy inkrementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=871&amp;p=3301#p3301"><![CDATA[
<div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t przerwij1(void)<br />{<br />   if (SWITCH_ON1)<br />      {<br />      _delay_ms(80);<br />      if (SWITCH_ON1) return 1;<br />      } else  return 0;<br />}</div><br />Dalej nie działa.. Jaka jest różnica między moją funkcją przerwij1 a tą z książki? Tam nie ma &quot;else&quot;. Nie bardzo czaję jaka jest różnica. Jak używałem przerwij1 bez &quot;else&quot; w innych funkcjach, które sobie stworzyłem, to działała.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=240">tkpoum</a> — 22 lut 2012, o 14:30</p><hr />
]]></content>
</entry>
</feed>