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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-29T08:51:34+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8643&amp;mode</id>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-29T08:51:34+01:00</updated>
<published>2014-09-29T08:51:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96974#p96974</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96974#p96974"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96974#p96974"><![CDATA[
Przy następnej okazji pomyślę nad tym rozwiązaniem bo nie jest wcale głupie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dzięki majster <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=5942">Vroobee</a> — 29 wrz 2014, o 08:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-09-28T09:14:34+01:00</updated>
<published>2014-09-28T09:14:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96905#p96905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96905#p96905"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96905#p96905"><![CDATA[
1 przycisk gora, 2 przycisk dol, 3 przycisk przelaczanie wyswietlacza. Dluzsze przytrzymanie przycisku 3 zerowanie danego wyswietlacza.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 28 wrz 2014, o 09:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-27T16:35:48+01:00</updated>
<published>2014-09-27T16:35:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96839#p96839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96839#p96839"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96839#p96839"><![CDATA[
Chciałem żeby każdy wyświetlacz mógł mieć osobne zliczanie w górę i w dół i osobny przycisk od zerowania. Wyświetlacze są 4, 4 x 2 = 8 no i dodatkowo zerowanie. Nie bardzo wiem jak coś takiego rozwiązać na 3 <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 27 wrz 2014, o 16:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-09-27T15:58:54+01:00</updated>
<published>2014-09-27T15:58:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96834#p96834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96834#p96834"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96834#p96834"><![CDATA[
Ze tak zapytam na co ci 9 nacisi jak mozna to zrobic na 3?<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 27 wrz 2014, o 15:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-27T15:25:45+01:00</updated>
<published>2014-09-27T15:25:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96831#p96831</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96831#p96831"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96831#p96831"><![CDATA[
Ale wtopa faktycznie <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> powinno być:<br />[syntax=c]PORTA |= KEY9;[/syntax]<br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> z rozpędu się napisało.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 27 wrz 2014, o 15:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-27T14:05:17+01:00</updated>
<published>2014-09-27T14:05:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96824#p96824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96824#p96824"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96824#p96824"><![CDATA[
<div class="quotetitle">Vroobee napisał(a):</div><div class="quotecontent"><br />PORTD = KEY1|KEY2|KEY3|KEY4|KEY5|KEY6|KEY7|KEY8|KEY9;   //podciagniecie na stan wysoki na przyciskach<br /></div><br /><br />no no nooo... 9 klawiszy na 8-bitowym porcie D, tego jeszcze nie było<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 wrz 2014, o 14:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-27T12:19:47+01:00</updated>
<published>2014-09-27T12:19:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96816#p96816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96816#p96816"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96816#p96816"><![CDATA[
Proszę bardzo.<br />Na razie wszystko działa tak jak oczekiwałem, że będzie działać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> jedyny mankament jest taki, że np. jeśli wszędzie są wyświetlone jedynki i chcę zmienić na jednym wyświetlaczu cyfrę na 2 to na którymś obok na sekundę zapalają się segmenty z cyfry 2. <br /><br />[syntax=c]/*<br /> * key_lock.c<br /> *<br /> * Created: 2014-09-27 11:11:13<br /> *  Author: Vroobee<br /> */ <br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define MULTI1 (1&lt;&lt;PB0)//kanały multipleksowane<br />#define MULTI2 (1&lt;&lt;PB1)<br />#define MULTI3 (1&lt;&lt;PB2)<br />#define MULTI4 (1&lt;&lt;PB3)<br /><br />#define KEY1 (1&lt;&lt;PD0)//przyciski<br />#define KEY2 (1&lt;&lt;PD1)<br />#define KEY3 (1&lt;&lt;PD2)<br />#define KEY4 (1&lt;&lt;PD3)<br />#define KEY5 (1&lt;&lt;PD4)<br />#define KEY6 (1&lt;&lt;PD5)<br />#define KEY7 (1&lt;&lt;PD6)<br />#define KEY8 (1&lt;&lt;PD7)<br />#define KEY9 (1&lt;&lt;PA0)<br /><br /><br />#define SEG1 (1&lt;&lt;PA1)//segmenty<br />#define SEG2 (1&lt;&lt;PA2)<br />#define SEG3 (1&lt;&lt;PA3)<br />#define SEG4 (1&lt;&lt;PA4)<br />#define SEG5 (1&lt;&lt;PA5)<br />#define SEG6 (1&lt;&lt;PA6)<br />#define SEG7 (1&lt;&lt;PA7)<br /><br />uint16_t key_lock;//zmienna do przycisku<br />uint8_t j = 0, d = 0, s = 0, t = 0;//cyfry kolejno jednosci, dziesiatek, setek i tysiecy<br />uint8_t kanal = 0;//zmienna kanal<br /><br />void jup (void);//funkcja zliczania w gore dla przycisku jednosci<br />void jdown (void);//funkcja zliczania w dol dla przycisku jednosci<br />void dup (void);//anaogicznie kazda funkcja dla zliczania w gore i w dol dla dziesiatek, setek i tysiecy<br />void ddown (void);<br />void sup (void);<br />void sdown (void);<br />void tup (void);<br />void tdown (void);<br />void zerowanie (void);//funkcja zerowania<br /><br />const uint8_t cyfry&#91;&#93; PROGMEM =//tablica z cyframi + czyszczenie                                               <br />{<br />SEG1|SEG2|SEG3|SEG4|SEG5|SEG6,<br />SEG2|SEG3,<br />SEG1|SEG2|SEG4|SEG5|SEG7,<br />SEG1|SEG2|SEG3|SEG4|SEG7,<br />SEG2|SEG3|SEG6|SEG7,<br />SEG1|SEG3|SEG4|SEG6|SEG7,<br />SEG1|SEG3|SEG4|SEG5|SEG6|SEG7,<br />SEG1|SEG2|SEG3,<br />SEG1|SEG2|SEG3|SEG4|SEG5|SEG6|SEG7,<br />SEG1|SEG2|SEG3|SEG4|SEG6|SEG7,<br />0x00,<br />};<br /><br />uint8_t cyfra(uint8_t cyfra)//pomocnicza funkcja wyswietlania                                                 <br />{<br />return pgm_read_byte(&amp;cyfry&#91;cyfra&#93;);<br />}<br /><br />int main(void)<br />{<br />PORTD = KEY1|KEY2|KEY3|KEY4|KEY5|KEY6|KEY7|KEY8|KEY9;//podciagniecie na stan wysoki na przyciskach<br />DDRB |= MULTI1|MULTI2|MULTI3|MULTI4;//multiplekser jako wyjscia<br />DDRA = SEG1|SEG2|SEG3|SEG4|SEG5|SEG6|SEG7;//segmenty jako wyjscia<br /><br />_delay_ms(10);<br /><br />TCCR0 |= (1&lt;&lt;WGM01);//tryb ctc timera<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);//prescaler 1024<br />OCR0 = 1;//porownanie<br />TIMSK |= (1&lt;&lt;OCIE0);//timer interrupt enable<br /><br />sei();//zezwolenie na przerwania<br /><br />    while(1)<br />    {<br />jup();//wywolanie funkcji<br />jdown();<br />dup();<br />ddown();<br />sup();<br />sdown();<br />tup();<br />tdown();<br />zerowanie();<br />    }<br />}<br /><br />void zerowanie (void)//instrukcje funkcji jak w artykule a drganiach cz. 2<br />{<br />if ( !key_lock &amp;&amp; !(PINA &amp; KEY9))<br />{<br />key_lock = 55000;<br />s = 0;//przypisanie zer do zmiennych<br />j = 0;<br />d = 0;<br />t = 0;<br /><br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY2))<br />{ key_lock++;}<br />}<br /><br />void jup (void)<br />{<br /> if ( !key_lock &amp;&amp; !(PIND &amp; KEY1))<br /> {<br /> key_lock = 55000;<br /> PORTA = cyfra(j++);//zwiekszenie cyfry na jednosciach o 1<br /> if (j &gt; 9)//warunek zapetlenia<br /> {<br /> j=0;<br /> }<br /> }<br /> else if (key_lock &amp;&amp; (PIND &amp; KEY1))<br /> {<br /> key_lock++;<br /> }<br />}<br /><br />void jdown (void)<br />{<br /> if ( !key_lock &amp;&amp; !(PIND &amp; KEY2))<br /> {<br /> key_lock = 55000;<br />   PORTA = cyfra(j--);//zmniejszenie cyfry na jednosciach o 1<br />   if (j &gt; 9)//warunek zapetlenia<br />   {<br />   j=9;<br />   }<br /><br /> }<br /> else if (key_lock &amp;&amp; (PIND &amp; KEY2))<br /> { key_lock++;}<br />}<br /><br />void dup (void)<br />{<br />if ( !key_lock &amp;&amp; !(PIND &amp; KEY3))<br />{<br />key_lock = 55000;<br />PORTA = cyfra(d++);<br />if (d &gt; 9)<br />{<br />d = 0;<br />}<br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY3))<br />{<br />key_lock++;<br />}<br />}<br /><br />void ddown (void)<br />{<br />if ( !key_lock &amp;&amp; !(PIND &amp; KEY4))<br />{<br />key_lock = 55000;<br />PORTA = cyfra(d--);<br />if (d &gt; 9)<br />{<br />d = 9;<br />}<br /><br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY4))<br />{ key_lock++;}<br />}<br /><br />void sup (void)<br />{<br />if ( !key_lock &amp;&amp; !(PIND &amp; KEY5))<br />{<br />key_lock = 55000;<br />PORTA = cyfra(s++);<br />if (s &gt; 9)<br />{<br />s=0;<br />}<br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY5))<br />{<br />key_lock++;<br />}<br />}<br /><br />void sdown (void)<br />{<br />if ( !key_lock &amp;&amp; !(PIND &amp; KEY6))<br />{<br />key_lock = 55000;<br />PORTA = cyfra(s--);<br />if (s &gt; 9)<br />{<br />s=9;<br />}<br /><br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY6))<br />{ key_lock++;}<br />}<br /><br />void tup (void)<br />{<br />if ( !key_lock &amp;&amp; !(PIND &amp; KEY7))<br />{<br />key_lock = 55000;<br />PORTA = cyfra(t++);<br />if (t &gt; 9)<br />{<br />t=0;<br />}<br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY7))<br />{<br />key_lock++;<br />}<br />}<br /><br />void tdown (void)<br />{<br />if ( !key_lock &amp;&amp; !(PIND &amp; KEY8))<br />{<br />key_lock = 55000;<br />PORTA = cyfra(t--);<br />if (t &gt; 9)<br />{<br />t=9;<br />}<br /><br />}<br />else if (key_lock &amp;&amp; (PIND &amp; KEY8))<br />{ key_lock++;}<br />}<br /><br />ISR(TIMER0_COMP_vect)//przerwanie od porownania<br />{<br />switch (kanal)//zmiana kanalu<br />{<br />case 0:<br />{<br />PORTA = cyfra(10);//czyszczenie wyswietlacza<br />PORTB |= (1&lt;&lt;0);//wybor kanalu<br />PORTB &amp;=~ (1&lt;&lt;1);<br />PORTB &amp;=~ (1&lt;&lt;2);<br />PORTB &amp;=~ (1&lt;&lt;3); <br />PORTA = cyfra(j);//wyswietlenie cyfry pod zmienna j<br />kanal++;//inkrementacja zmiennej kanal<br />break;<br />}<br />case 1:<br />{<br />PORTA = cyfra(10);<br />PORTB |= (1&lt;&lt;1);<br />PORTB &amp;=~ (1&lt;&lt;0);<br />PORTB &amp;=~ (1&lt;&lt;2);<br />PORTB &amp;=~ (1&lt;&lt;3);<br />PORTA = cyfra(d);<br />kanal++;<br />break;<br />}<br />case 2:<br />{<br />PORTA = cyfra(10);<br />PORTB |= (1&lt;&lt;2);<br />PORTB &amp;=~ (1&lt;&lt;0);<br />PORTB &amp;=~ (1&lt;&lt;1);<br />PORTB &amp;=~ (1&lt;&lt;3);<br />PORTA = cyfra(s);<br />kanal++;<br />break;<br />}<br />case 3:<br />{<br />PORTA = cyfra(10);<br />PORTB |= (1&lt;&lt;3);<br />PORTB &amp;=~ (1&lt;&lt;0);<br />PORTB &amp;=~ (1&lt;&lt;1);<br />PORTB &amp;=~ (1&lt;&lt;2);<br />PORTA = cyfra(t);<br />kanal=0;<br />break;<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 27 wrz 2014, o 12:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-09-27T10:50:29+01:00</updated>
<published>2014-09-27T10:50:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96811#p96811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96811#p96811"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96811#p96811"><![CDATA[
Pokaż kolego kod to coś ci podpowiemy co i jak czy w dobrą stronę teraz idziesz ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 27 wrz 2014, o 10:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-27T10:46:12+01:00</updated>
<published>2014-09-27T10:46:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96810#p96810</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96810#p96810"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96810#p96810"><![CDATA[
Zainteresowałem się przyciskiem i DZIAŁA <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> na razie na jednym wyświetlaczu. Teraz próby z resztą <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=5942">Vroobee</a> — 27 wrz 2014, o 10:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-09-27T09:36:25+01:00</updated>
<published>2014-09-27T09:36:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96808#p96808</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96808#p96808"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96808#p96808"><![CDATA[
no to teraz wystarczy zainteresowac sie przyciskiem. juz dwa razy w temacie padl link do drgan stykow. tam tkwi diabel. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />sugeruje poczytac. dobra tresciwa lektura<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 27 wrz 2014, o 09:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-09-27T09:22:08+01:00</updated>
<published>2014-09-27T09:22:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96806#p96806</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96806#p96806"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96806#p96806"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post78545.html#p78545" >post78545.html#p78545</a><!-- l --> zobacz ten temat nawiązujący do wideo:<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 27 wrz 2014, o 09:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-09-27T09:25:54+01:00</updated>
<published>2014-09-27T09:18:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96805#p96805</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96805#p96805"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96805#p96805"><![CDATA[
<div class="quotetitle">Vroobee napisał(a):</div><div class="quotecontent"><br />Oczywiście, że sprawdzałem.<br />1) jeśli chodzi o przerwanie, timera użyłem do multiplikacji ponieważ docelowo mają być 4 wyświetlacze. Wszystko działa sprawnie (przynajmniej tak mi się wydaje). Możliwe jest ustawienie różnych cyfr na różnych wyświetlaczach, odliczanie cyfr w górę i w dół. Chyba, że poprawne działanie to coś innego.<br />2) zmiana wartości zmiennej j również działa. Jeśli zmienię ją nie ważne czy w momencie inicjacji zmiennej czy później w bloku programu, zawsze wyświetla wartość zadeklarowaną przeze mnie. Tylko jak dołączę do tego inkrementację zupełnie przestaje i wyświetla tylko stan początkowy (czyli 0).<br />Działa nawet coś takiego (przy niezmienności reszty kodu):<br />[syntax=c]while(1)<br />    {<br />                        if (bit_is_clear(PIND,0))                                                               //jeśli przycisk wciśnięty to...<br />                        {      <br />                               PORTA = cyfra(4)                                                                 //(TUTAJ ZMIANA!!!!!) wyświetl 4<br />                        }<br />    }[/syntax]<br /></div><br /><br />Owszem działa bo jedyna rzecz jak ma się stać to wyświetlenie cyfry 4, więc nie ważne czy wciśniesz przycisk na krótko czy też na dłużej i tak do wykonania jest tylko ta jedna i ta sama operacja.<br />Zobacz jak na Mirka blogu jest opisana sprawa &quot;drgających styków&quot; i w jaki sposób jest ten problem rozwiązany <br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html" >http://mirekk36.blogspot.com/2012/10/dr ... ak-to.html</a><!-- m --><br /><br />Tak na próbę, spróbuj dodać jakieś opóźnienie _delay_ms() po poleceniu <strong>j++;</strong><br /><br /><br />Tak teraz patrzę na Twój kod, a gdzie zerujesz zmienną &quot;kanal&quot; ? Bo z tego co widzę to w przerwaniu jest on inkrementowana, więc na mój rozum &quot;case 0&quot; wykona się raz przy starcie programu, a potem już się nie wykona bo zmienna &quot;kanal&quot; będzie miała wartość różną od zera.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 27 wrz 2014, o 09:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-09-27T08:22:15+01:00</updated>
<published>2014-09-27T08:22:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96804#p96804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96804#p96804"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96804#p96804"><![CDATA[
Kolego poszukaj na forum bo juz temat byl poruszany i w tamtym temacie napisalem kod ze wcisniecie klawisza zwieksza zmienna o 1 w zakresie od 0 do 9 na wyswietlaczu 7segment.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 27 wrz 2014, o 08:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-26T23:27:16+01:00</updated>
<published>2014-09-26T23:27:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96797#p96797</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96797#p96797"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96797#p96797"><![CDATA[
Oczywiście, że sprawdzałem.<br />1) jeśli chodzi o przerwanie, timera użyłem do multiplikacji ponieważ docelowo mają być 4 wyświetlacze. Wszystko działa sprawnie (przynajmniej tak mi się wydaje). Możliwe jest ustawienie różnych cyfr na różnych wyświetlaczach, odliczanie cyfr w górę i w dół. Chyba, że poprawne działanie to coś innego.<br />2) zmiana wartości zmiennej j również działa. Jeśli zmienię ją nie ważne czy w momencie inicjacji zmiennej czy później w bloku programu, zawsze wyświetla wartość zadeklarowaną przeze mnie. Tylko jak dołączę do tego inkrementację zupełnie przestaje i wyświetla tylko stan początkowy (czyli 0).<br />Działa nawet coś takiego (przy niezmienności reszty kodu):<br />[syntax=c]while(1)<br />    {<br />                        if (bit_is_clear(PIND,0))                                                               //jeśli przycisk wciśnięty to...<br />                        {      <br />                               PORTA = cyfra(4)                                                                 //(TUTAJ ZMIANA!!!!!) wyświetl 4<br />                        }<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 26 wrz 2014, o 23:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-09-26T23:17:08+01:00</updated>
<published>2014-09-26T23:17:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96796#p96796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96796#p96796"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96796#p96796"><![CDATA[
a na studiach juz nie ucza jak rozwiazywac problemy?<br />- czy sprawdziles czy przerwanie dziala dobrze<br />- czy sprawdziles czy reczne ustawienie zmiennej j na wartosc inna niz 0 dziala dobrze<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 26 wrz 2014, o 23:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-26T23:00:36+01:00</updated>
<published>2014-09-26T23:00:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96795#p96795</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96795#p96795"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96795#p96795"><![CDATA[
Rozumiem, z artykułem już się zapoznałem. Ale czy to może być powodem braku inkrementacji zmiennej ? Czy ten kod (nie licząc felernego bit_is_clear, którego notabene nauczyli mnie na studiach) ma szanse na powodzenie, czy może rozwiązać to w jakiś inny sposób ?<br /><br />P.s. niestety nie jestem posiadaczem bluebook'a, czego żałuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 26 wrz 2014, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-26T22:46:39+01:00</updated>
<published>2014-09-26T22:46:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96794#p96794</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96794#p96794"/>
<title type="html"><![CDATA[Re: Inkrementacja cyfry po wciśnięciu przycisku na wyświetla]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96794#p96794"><![CDATA[
<div class="quotetitle">Vroobee napisał(a):</div><div class="quotecontent"><br />bit_is_clear<br /></div><br /><br />polecam ci jak najszybciej zapomnij o takich &quot;wynalazkach&quot; i zakop je pół metra pod ziemią - jeśli chcesz pisać dobrze i wygodnie programy. Zajrzyj lepiej do Bluebooka na funkcję SuperDebounce() ... a jeśli jeszcze na tym etapie jest to za trudne to koniecznie poczytaj i zobacz to:<br /><br /><!-- 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 --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 wrz 2014, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2014-09-26T21:28:04+01:00</updated>
<published>2014-09-26T21:22:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96786#p96786</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96786#p96786"/>
<title type="html"><![CDATA[Inkrementacja cyfry po wciśnięciu przycisku na wyświetlaczu.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8643&amp;p=96786#p96786"><![CDATA[
Witam,<br />mam pewien problem z wyświetlaczem, a mianowicie chciałbym aby na wyświetlaczu 7 segmentowym po przyciśnięciu przycisku liczba wyświetlana wzrastała o 1. Kolejno od 0 do 9 i w kółko. Z tym, że po przyciśnięciu przycisku z kodem jak poniżej zupełnie nic się nie dzieje. Jeśli zmienię typ zmiennej j wyskakują krzaki. Jestem początkujący w programowaniu AVRów i nie bardzo orientuję się gdzie może być błąd. Dla mnie wszystko wygląda w miarę logicznie ale działać nie chce <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br />Proszę o pomoc.<br /><br />[syntax=c]/*<br /> * tablica_program.c<br /> *<br /> * Created: 2014-09-26 19:54:00<br /> *  Author: Vroobee<br /> */ <br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />volatile uint8_t j;<br />volatile uint8_t kanal = 0;<br /><br />const uint8_t cyfry&#91;&#93; PROGMEM =//tablica z cyframi od 0 do 9 + czyszczenie wyświetlacza<br />{<br />(1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;5)|(1&lt;&lt;6),<br />(1&lt;&lt;2)|(1&lt;&lt;3),<br />(1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;4)|(1&lt;&lt;5)|(1&lt;&lt;7),<br />(1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;7),<br />(1&lt;&lt;2)|(1&lt;&lt;3)|(1&lt;&lt;6)|(1&lt;&lt;7),<br />(1&lt;&lt;1)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;6)|(1&lt;&lt;7),<br />(1&lt;&lt;1)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;5)|(1&lt;&lt;6)|(1&lt;&lt;7),<br />(1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;3),<br />(1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;5)|(1&lt;&lt;6)|(1&lt;&lt;7),<br />(1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;6)|(1&lt;&lt;7),<br />0x00,<br />};<br /><br />uint8_t cyfra(uint8_t cyfra)//funkcja pobierająca znak z tablicy (trochę dla ułatwienia)<br />{<br />return pgm_read_byte(&amp;cyfry&#91;cyfra&#93;);<br />}<br /><br />int main(void)<br />{<br />DDRA = (1&lt;&lt;1)|(1&lt;&lt;2)|(1&lt;&lt;3)|(1&lt;&lt;4)|(1&lt;&lt;5)|(1&lt;&lt;6)|(1&lt;&lt;7);//segmenty wyświetlacza jako wyjście<br />DDRB = (1&lt;&lt;0);                        //Załączenie wyświetlacza<br /><br />TCCR0 |= (1&lt;&lt;WGM01);//tryb CTC timera<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);//prescaler<br />OCR0 = 2;//rejestr porównawczy<br />TIMSK |= (1&lt;&lt;OCIE0);//timer enable<br /><br />PORTA = cyfra(0);//początkowa wartość na wyświetlaczu 0<br /><br />sei();//zezwolenie na przerwania<br /><br />    while(1)<br />    {<br />if (bit_is_clear(PIND,0))//jeśli przycisk wciśnięty to...<br />{<br />j++;//inkrementuj j<br />}<br />    }<br />}<br /><br />ISR(TIMER0_COMP_vect)//przerwanie od porównania timera<br />{<br />switch (kanal)//switch kanału (tutaj dotyczy tylko jednego)<br />{<br />case 0:<br />{<br />PORTB |= (1&lt;&lt;0);//ustawienie kanału na PB0<br />PORTA = cyfra(j);//segmenty mają wyświetlać cyfrę określoną przez zmienną j<br />kanal++;//inkrementacja zmiennej kanał<br />break;<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 26 wrz 2014, o 21:22</p><hr />
]]></content>
</entry>
</feed>