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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-30T16:35:40+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5327&amp;mode</id>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T16:35:40+01:00</updated>
<published>2013-12-30T16:35:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62938#p62938</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62938#p62938"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62938#p62938"><![CDATA[
<div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />Cieszę się, że się udało!<br />Można i tak jeśli jesteś zadowolony z efektu. To najważniejsze.<br /><br />Jeszcze tylko uwaga natury porządkowej...<br />Definicje funkcji i procedury obsługi przerwania pisz POD funkcją main()<br />To zdecydowanie poprawia czytelność i ułatwia analizę kodu.<br />Trzeba tylko pamiętać żeby z kolei deklaracje funkcji umieszczać przed funkcją main()<br />bo kompilator zgłosi błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /></div><br />Dzięki wielkie za pomoc jeszcze raz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. I za wszelakie wskazówki. Pozdro<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 30 gru 2013, o 16:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T15:03:48+01:00</updated>
<published>2013-12-30T15:03:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62926#p62926</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62926#p62926"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62926#p62926"><![CDATA[
Cieszę się, że się udało!<br />Można i tak jeśli jesteś zadowolony z efektu. To najważniejsze.<br /><br />Jeszcze tylko uwaga natury porządkowej...<br />Definicje funkcji i procedury obsługi przerwania pisz POD funkcją main()<br />To zdecydowanie poprawia czytelność i ułatwia analizę kodu.<br />Trzeba tylko pamiętać żeby z kolei deklaracje funkcji umieszczać przed funkcją main()<br />bo kompilator zgłosi błąd <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=189">MirkoT</a> — 30 gru 2013, o 15:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T13:42:54+01:00</updated>
<published>2013-12-30T13:42:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62912#p62912</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62912#p62912"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62912#p62912"><![CDATA[
OK problem rozwiązałem:) Jakby ktoś był ciekawy dołączam kod <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Teraz pora na zabawę z LCD:P<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 10-12-2013<br /> *      Author: Bartek<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 /><br />volatile long int sekundy = 0;<br />volatile long int minuty = 0;<br />volatile long int minuty_jednosci = 0;<br />volatile long int minuty_dziesiatki = 0;<br />volatile long int godziny = 0;<br />volatile long int godzina_jednosci = 0;<br />volatile long int godzina_dziesiatki = 0;<br />volatile int wysw=0;;<br />volatile char tablica&#91;4&#93;;<br />volatile int pozycja&#91;&#93; = {0x01,0x02,0x04,0x08};<br /><br />//////////////////////////////////////////////////////////////////////////////////////<br />void set_time()<br />{<br /><br /><br />int pelne_godziny = minuty/60;<br />int _minuty = minuty - pelne_godziny*60;<br /><br />godzina_dziesiatki = pelne_godziny/10;<br />godzina_jednosci = (pelne_godziny-godzina_dziesiatki*10)/1;<br />minuty_dziesiatki = _minuty/10;<br />minuty_jednosci = (_minuty - minuty_dziesiatki*10)/1;<br /><br /><br /><br /><br />int tab&#91;&#93; = {0xc0,0xf9,0x24,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};<br />int tab2&#91;&#93; = {0x40,0x79,0x24,0x30,0x1b,0x12,0x02,0x78,0x00};<br />//godziny dziesiatki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(godzina_dziesiatki == i)<br />{<br />tablica&#91;0&#93; = tab&#91;i&#93;;<br />}<br />}<br />//godziny jednostki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(godzina_jednosci == i)<br />{<br />tablica&#91;1&#93; = tab2&#91;i&#93;;<br />}<br />}<br />//minuty dziesiatki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(minuty_dziesiatki == i)<br />{<br />tablica&#91;2&#93; = tab&#91;i&#93;;<br />}<br />}<br />//minuta jednosci<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(minuty_jednosci == i)<br />{<br />tablica&#91;3&#93; = tab&#91;i&#93;;<br />}<br />}<br />switch(wysw)<br />  {<br /><br />case 3:<br />   {<br />      PORTA=0x08;<br />      PORTD=tablica&#91;3&#93;;<br />      wysw=0;<br />  break;<br />   }<br />   case 2:<br />   {<br />      PORTA=0x04;<br />      PORTD=tablica&#91;2&#93;;<br />      wysw++;<br />  break;<br />   }<br />   case 1:<br />   {<br />      PORTA=0x2;<br />      PORTD=tablica&#91;1&#93;;<br />      wysw++;<br />  break;<br />   }<br />   case 0:<br />   {<br />      PORTA=0x1;<br />      PORTD=tablica&#91;0&#93;;<br />      wysw++;<br />  break;<br />   }<br /><br />  }<br /><br />}<br />//////////////////////////////////////////////////////////////////////////////////////<br />ISR(TIMER1_COMPB_vect)<br />{<br />sekundy++;<br />if(sekundy == 60)<br />{<br />minuty++;<br />sekundy = 0;<br />}<br />if(minuty == 1440)<br />{<br />minuty = 0;<br />}<br />}<br />///////////////////////////////////////////////////////////////////////////////////////<br />int main(void)<br />{<br /><br />minuty = 819;<br /><br />        DDRD = 0xFF;<br />        PORTD = 0xff;<br />        DDRA = 0x0f;<br />        PORTA = 0x0f;<br /><br /><br /><br />        //ustawienie timera<br />        TCCR1B |= (1&lt;&lt;WGM12); //tryb ctc<br />        TCCR1B |= (1&lt;&lt;CS11)|(1&lt;&lt;CS10); //preskaler 64<br />        OCR1A= 15625;//100;//625;//15625; //do ilu liczy timer1 dla odmierzenia 1s<br />        TIMSK |= (1&lt;&lt;OCIE1B);  //zezwolenie na przerwanie dla CTC<br />        sei();<br /><br /><br /><br /><br />        while(1)<br />        {<br />        set_time();<br />        }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 30 gru 2013, o 13:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T11:20:52+01:00</updated>
<published>2013-12-30T11:20:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62888#p62888</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62888#p62888"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62888#p62888"><![CDATA[
<div class="quotetitle">M3pasix napisał(a):</div><div class="quotecontent"><br />Tak właśnie teraz zdałem sobie z tego sprawę <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. Czy do uzyskania takiego efektu o jakim mówisz tj. żeby każda cyfra świeciła się tyle samo muszę podłączać pozycje przez tranzystor?<br /></div><br />sam tranzystor sprawy nie rozwiąże.<br />trzeba po prostu sterować wyświetlaniem przez określony, równy dla każdego wyświetlacza czas. I to jest sedno sprawy.<br />A w ogóle to dobrze by było sterować takim wyświetlaczem przes tranzystor!<br />Policz sobie jaki prąd popłynie przez wspólną końcówkę jak zapalisz cyfrę 8 czyli wszystkie elementy na wyświetlaczu.<br />Toż ATmega może tego nie wytrzymać. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> I odmówi dalszej współpracy z Tobą... hihihi<br /><br /><span style="font-size: 85%; line-height: normal">Ps. jeśli moje uwagi do czegoś się przydały kliknij pomógł</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 30 gru 2013, o 11:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T11:12:57+01:00</updated>
<published>2013-12-30T11:12:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62886#p62886</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62886#p62886"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62886#p62886"><![CDATA[
Tak właśnie teraz zdałem sobie z tego sprawę <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. Czy do uzyskania takiego efektu o jakim mówisz tj. żeby każda cyfra świeciła się tyle samo muszę podłączać pozycje przez tranzystor?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 30 gru 2013, o 11:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T11:09:30+01:00</updated>
<published>2013-12-30T11:09:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62885#p62885</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62885#p62885"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62885#p62885"><![CDATA[
<div class="quotetitle">M3pasix napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent">Zapytam jeszcze o jedną rzecz.<br />A masz BB?<br />Jeśli masz to przeczytaj rozdział o multipleksowaniu wyświetlacza.<br />Bo to co robisz w taki sposób nie może działać. Po prostu pojawiają Ci<br />się &quot;duszki&quot;. <br />Jeden wyświetlacz świeci się przez prawie sekundę a pozostałe tylko migają <br />przez niewielki ułamek sekundy. Na dodatek pojawiają się na nich &quot;przebicia&quot;<br />z poprzedniej cyfry.<br /></div><br /><br /><br />Niestety nie mam, ale spróbuję coś w internecie wygrzebać nt. multipleksowania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /></div><br />Generalnie chodzi o to, żeby każda cyfra na wyświetlaczu świeciła tyle samo czasu.<br />Tak jak Ty to zrobiłeś to zobacz co się dzieje:<br /><br /><br />[syntax=c]//minuty dziesiatki<br /><br />               for (int i = 0; i &lt; 10; i++)<br />               {<br />                        if(minuty_dziesiatki == i)<br />                       {<br />                                        tablica&#91;2&#93; = tab&#91;i&#93;;<br />                                        PORTA= pozycja&#91;2&#93;;<br />                                        PORTD= tablica&#91;2&#93;;<br />                        }<br />                }<br /><br />                //minuta jednosci<br />                for (int i = 0; i &lt; 10; i++)        // drugie for<br />                {<br />                        if(minuty_jednosci == i)<br />                        {<br />                                tablica&#91;3&#93; = tab&#91;i&#93;;<br />                                PORTA= pozycja&#91;3&#93;;<br />                                PORTD= tablica&#91;3&#93;;  // tu się kończy przerwanie<br />                        }[/syntax]<br /><br />to tylko fragment wycięty (mam nadzieję, że dobrze)<br />Czyli to co masz w pierwszym for trwa bardzo krótko i ta cyfra świeci słabiej<br />to co masz w drugim for trwa dłuuuugo bo aż do następnego przerwania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 30 gru 2013, o 11:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T11:03:01+01:00</updated>
<published>2013-12-30T11:03:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62883#p62883</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62883#p62883"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62883#p62883"><![CDATA[
<div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />Zapytam jeszcze o jedną rzecz.<br />A masz BB?<br />Jeśli masz to przeczytaj rozdział o multipleksowaniu wyświetlacza.<br />Bo to co robisz w taki sposób nie może działać. Po prostu pojawiają Ci<br />się &quot;duszki&quot;. <br />Jeden wyświetlacz świeci się przez prawie sekundę a pozostałe tylko migają <br />przez niewielki ułamek sekundy. Na dodatek pojawiają się na nich &quot;przebicia&quot;<br />z poprzedniej cyfry.<br /></div><br /><br /><br />Niestety nie mam, ale spróbuję coś w internecie wygrzebać nt. multipleksowania <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=2310">M3pasix</a> — 30 gru 2013, o 11:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T10:59:45+01:00</updated>
<published>2013-12-30T10:59:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62882#p62882</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62882#p62882"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62882#p62882"><![CDATA[
Zapytam jeszcze o jedną rzecz.<br />A masz BB?<br />Jeśli masz to przeczytaj rozdział o multipleksowaniu wyświetlacza.<br />Bo to co robisz w taki sposób nie może działać. Po prostu pojawiają Ci<br />się &quot;duszki&quot;. <br />Jeden wyświetlacz świeci się przez prawie sekundę a pozostałe tylko migają <br />przez niewielki ułamek sekundy. Na dodatek pojawiają się na nich &quot;przebicia&quot;<br />z poprzedniej cyfry.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">M3pasix napisał(a):</div><div class="quotecontent"><br />No i proszę <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Jak wrzuciłem do innej funkcji te wszystkie obliczania, a ją do while() w mainie to się wszystko wyświetla:D. Ale ostatnia cyfra świeci mocniej <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Jakieś pomysły xD?<br /><br />Czy nie jest to przyczyną tego że wywołuję przerwanie co sekundę? a nie minutę?<br /></div><br />No nie wiem co tam teraz masz w kodzie, ale świeci jaśniej bo świeci &quot;dłużej&quot; niż pozostałe <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=189">MirkoT</a> — 30 gru 2013, o 10:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T11:00:08+01:00</updated>
<published>2013-12-30T10:58:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62881#p62881</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62881#p62881"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62881#p62881"><![CDATA[
No i proszę <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Jak wrzuciłem do innej funkcji te wszystkie obliczania, a ją do while() w mainie to się wszystko wyświetla:D. Ale ostatnia cyfra świeci mocniej <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Jakieś pomysły xD?<br /><br />Czy nie jest to przyczyną tego że wywołuję przerwanie co sekundę? a nie minutę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 30 gru 2013, o 10:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T10:50:29+01:00</updated>
<published>2013-12-30T10:50:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62878#p62878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62878#p62878"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62878#p62878"><![CDATA[
<div class="quotetitle">M3pasix napisał(a):</div><div class="quotecontent"><br />I jeszcze jedno pytanie odnośnie tego gdzie powinienem robić wszelkie obliczenia tj nie w przerwaniu. Gdzie w takim razie mam inkrementować zmienną sekundy?<br /></div><br />Zmienną sekundy inkrementujesz w przerwaniu.<br />A całą resztę obliczeń robisz poza przerwaniem.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br /><div class="quotetitle">M3pasix napisał(a):</div><div class="quotecontent"><br />No tak bo ja wkleiłem to pod Twoją prośbą o cały kod z ECLIPSE <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. Zamienię ten pierwszy też <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br />To mi ulżyło, że z moimi oczkami nie jest jeszcze tak całkiem źle <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=189">MirkoT</a> — 30 gru 2013, o 10:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T10:50:42+01:00</updated>
<published>2013-12-30T10:50:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62877#p62877</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62877#p62877"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62877#p62877"><![CDATA[
No tak bo ja wkleiłem to pod Twoją prośbą o cały kod z ECLIPSE <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. Zamienię ten pierwszy też <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=2310">M3pasix</a> — 30 gru 2013, o 10:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T10:48:26+01:00</updated>
<published>2013-12-30T10:48:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62876#p62876</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62876#p62876"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62876#p62876"><![CDATA[
w kodzie z pierwszego postu tego nie ma <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> <br />no chyba, że jestem ślepy  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  Ale w moim wieku wszystko już jest możliewe <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 30 gru 2013, o 10:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T10:43:45+01:00</updated>
<published>2013-12-30T10:43:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62873#p62873</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62873#p62873"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62873#p62873"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Dlatego dobrym pomysłem jest wykonywanie wszelkich obliczeń poza przerwaniem.<br /></div><br />W pełni się zgadzam i dziękuję za uwagę:D<br /><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />A gdzie masz wyświetlanie tego co sobie w tym przerwaniu obliczyłeś? Nie ma!<br />To jak się ma cokolwiek wyświetlać?<br /></div><br /><br />A tutaj nie bardzo rozumiem mam przecież pętle for w funkcji obsługi przerwań które inicjują wartość na PORTA i PORTD , właśnie teraz patrzą na 7-seg i widzę jakby godzinę ale pływającą z lewej do prawej:D<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />I jeszcze jedno pytanie odnośnie tego gdzie powinienem robić wszelkie obliczenia tj nie w przerwaniu. Gdzie w takim razie mam inkrementować zmienną sekundy?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 30 gru 2013, o 10:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T10:39:13+01:00</updated>
<published>2013-12-30T10:39:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62872#p62872</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62872#p62872"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62872#p62872"><![CDATA[
Już wiem, nic Ci się nie wyświetla...<br />Trochę namieszałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />No coś sobie ustawiasz w przerwaniu, a przecież przrwanie powinno być KRÓTKIE.<br />Dlatego dobrym pomysłem jest wykonywanie wszelkich obliczeń poza przerwaniem.<br />A gdzie masz wyświetlanie tego co sobie w tym przerwaniu obliczyłeś? Nie ma!<br />To jak się ma cokolwiek wyświetlać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 30 gru 2013, o 10:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T10:30:01+01:00</updated>
<published>2013-12-30T10:30:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62871#p62871</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62871#p62871"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62871#p62871"><![CDATA[
Kod: <br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 10-12-2013<br /> *      Author: Bartek<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 /><br />volatile int sekundy = 0;<br />volatile int minuty = 0;<br />volatile int minuty_jednosci = 0;<br />volatile int minuty_dziesiatki = 0;<br />volatile int godziny = 0;<br />volatile int godzina_jednosci = 0;<br />volatile int godzina_dziesiatki = 0;<br /><br />volatile char tablica&#91;4&#93;;<br />volatile int pozycja&#91;&#93; = {0x01,0x02,0x04,0x08};<br /><br />//////////////////////////////////////////////////////////////////////////////////////<br />ISR(TIMER1_COMPB_vect)<br />{<br /><br /><br />sekundy++;<br />minuty = sekundy/60;<br />int pelne_godziny = minuty/60;<br />int _minuty = minuty - pelne_godziny*60;<br /><br />godzina_dziesiatki = pelne_godziny/10;<br />godzina_jednosci = (pelne_godziny-godzina_dziesiatki*10)/1;<br />minuty_dziesiatki = _minuty/10;<br />minuty_jednosci = (_minuty - minuty_dziesiatki*10)/1;<br /><br /><br /><br /><br />int tab&#91;&#93; = {0xc0,0xf9,0x24,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};<br />//godziny dziesiatki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(godzina_dziesiatki == i)<br />{<br />tablica&#91;0&#93; = tab&#91;i&#93;;<br />PORTA=pozycja&#91;0&#93;;<br />PORTD= tablica&#91;0&#93;;<br />}<br />}<br />//godziny jednostki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(godzina_jednosci == i)<br />{<br />tablica&#91;1&#93; = tab&#91;i&#93;;<br />PORTA=pozycja&#91;1&#93;;<br />PORTD= tablica&#91;1&#93;;<br />}<br />}<br />//minuty dziesiatki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(minuty_dziesiatki == i)<br />{<br />tablica&#91;2&#93; = tab&#91;i&#93;;<br />PORTA= pozycja&#91;2&#93;;<br />PORTD= tablica&#91;2&#93;;<br />}<br />}<br />//minuta jednosci<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(minuty_jednosci == i)<br />{<br />tablica&#91;3&#93; = tab&#91;i&#93;;<br />PORTA= pozycja&#91;3&#93;;<br />PORTD= tablica&#91;3&#93;;<br />}<br />}<br /><br />}<br />///////////////////////////////////////////////////////////////////////////////////////<br />int main(void)<br />{<br /><br />sekundy = 8520;<br />        DDRD = 0xFF;<br />        PORTD = 0xff;<br />        DDRA = 0x0f;<br />        PORTA = 0x0f;<br />        //ustawienie timera<br />        TCCR1B |= (1&lt;&lt;WGM12); //tryb ctc<br />        TCCR1B |= (1&lt;&lt;CS11)|(1&lt;&lt;CS10);<br />        OCR1A= 15625;<br />        TIMSK |= (1&lt;&lt;OCIE1B);<br />        sei();<br /><br />        while(1)<br />        {<br /><br />        }<br /><br />}[/syntax]<br /><br />A co do schematu to chwilowo nie mam do niego dostępu, ale wygląda to tak że pod PORTD podczepione są segmenty wyświetlacza, a PORTA pierwsze cztery piny odpowiadają za pozycje. Wyswietla mi się to co chcę jak dam delaya w każdym forze w funkcji obsługi przerwań, no ale to wszystko pływa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> .  Korzystam z wbudowanego kwarcu 1MHz. Muszę tak napisać funkcję by te wartości jakby były sobie przyporządkowane i nie w nieskończonej funkcji bo czas musi się uaktualniać! <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=2310">M3pasix</a> — 30 gru 2013, o 10:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-30T10:10:34+01:00</updated>
<published>2013-12-30T10:10:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62868#p62868</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62868#p62868"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62868#p62868"><![CDATA[
<div class="quotetitle">M3pasix napisał(a):</div><div class="quotecontent"><br />Problem nadal aktualny <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br />A gdzie i jakie masz &quot;inkludy&quot;?<br />Przekopiuj cały kod z ECLIPSa (od początku do końca)<br />Jakim zegarem pędzisz tą atmegę?<br /><br />Czy cokolwiek Ci się wyświetla? Pokaż schemat.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 30 gru 2013, o 10:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T10:04:12+01:00</updated>
<published>2013-12-30T10:04:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62865#p62865</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62865#p62865"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62865#p62865"><![CDATA[
Problem nadal aktualny <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=2310">M3pasix</a> — 30 gru 2013, o 10:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-29T20:44:23+01:00</updated>
<published>2013-12-29T20:44:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62798#p62798</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62798#p62798"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62798#p62798"><![CDATA[
Przerwań nie łączy się z innymi funkcjami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />One działają zupełnie niezależnie od reszty programu.<br />Zresztą polecam najnowszy poradnik Mirka. Jest właśnie o przerwaniach.<br /><br />Poza tym jak ma się zmieniać wartość skoro gdy wchodzisz w funkcję set_time to już z niej nie wyjdziesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Masz tam po prostu drugą pętlę nieskończoną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 29 gru 2013, o 20:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-29T19:28:08+01:00</updated>
<published>2013-12-29T19:28:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62783#p62783</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62783#p62783"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62783#p62783"><![CDATA[
mmm mój błąd z tego całego przeglądania internetu mi się pomieszało. Przerwania nie mam i do tego miało być pytanie czy jest potrzebne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. I ewentualnie jak połączyć funkcję set_time z przerwaniem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 29 gru 2013, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[vaffanculo]]></name></author>
<updated>2013-12-29T19:25:44+01:00</updated>
<published>2013-12-29T19:25:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62781#p62781</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62781#p62781"/>
<title type="html"><![CDATA[Re: Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62781#p62781"><![CDATA[
A gdzie to przerwanie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1784">vaffanculo</a> — 29 gru 2013, o 19:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M3pasix]]></name></author>
<updated>2013-12-30T10:51:45+01:00</updated>
<published>2013-12-29T19:23:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62780#p62780</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62780#p62780"/>
<title type="html"><![CDATA[Odświeżanie wartości na wyświetlaczu 7-seg.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5327&amp;p=62780#p62780"><![CDATA[
Witam!<br />Otóż z braku zajęć postanowiłem zrobić sobie budzik oparty o atmega32. No niby projekt prosty ale napotkałem już pierwszą przeszkodę. Chodzi mi to, że gdy zmierzę za pomocą przerwań jakiś odstęp czasu to wartość ta ma być wyświetlana na 7-seg. Chciałbym uzyskać coś na zasadzie wyłączności tj. załóżmy pierwszy segment wyświetla część odpowiedzialną za dziesiątki godzin itd.. I tutaj pojawia się problem, niestety nie jestem w stanie zrealizować tego w pętli while.. Stąd prośba o pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Czekam na wszelkie sugestie.<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 10-12-2013<br /> *      Author: Bartek<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 /><br />volatile int sekundy = 0;<br />volatile int minuty = 0;<br />volatile int minuty_jednosci = 0;<br />volatile int minuty_dziesiatki = 0;<br />volatile int godziny = 0;<br />volatile int godzina_jednosci = 0;<br />volatile int godzina_dziesiatki = 0;<br /><br />volatile char tablica&#91;4&#93;;<br />volatile int pozycja&#91;&#93; = {0x01,0x02,0x04,0x08};<br /><br />//////////////////////////////////////////////////////////////////////////////////////<br />ISR(TIMER1_COMPB_vect)<br />{<br /><br /><br />sekundy++;<br />minuty = sekundy/60;<br />int pelne_godziny = minuty/60;<br />int _minuty = minuty - pelne_godziny*60;<br /><br />godzina_dziesiatki = pelne_godziny/10;<br />godzina_jednosci = (pelne_godziny-godzina_dziesiatki*10)/1;<br />minuty_dziesiatki = _minuty/10;<br />minuty_jednosci = (_minuty - minuty_dziesiatki*10)/1;<br /><br /><br /><br /><br />int tab&#91;&#93; = {0xc0,0xf9,0x24,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};<br />//godziny dziesiatki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(godzina_dziesiatki == i)<br />{<br />tablica&#91;0&#93; = tab&#91;i&#93;;<br />PORTA = pozycja&#91;0&#93;;<br />PORTD = tablica&#91;0&#93;;<br />}<br />}<br />//godziny jednostki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(godzina_jednosci == i)<br />{<br />tablica&#91;1&#93; = tab&#91;i&#93;;<br />PORTA = pozycja&#91;1&#93;;<br />PORTD = tablica&#91;1&#93;;<br />}<br />}<br />//minuty dziesiatki<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(minuty_dziesiatki == i)<br />{<br />tablica&#91;2&#93; = tab&#91;i&#93;;<br />PORTA = pozycja&#91;2&#93;;<br />PORTD = tablica&#91;2&#93;;<br />}<br />}<br />//minuta jednosci<br />for (int i = 0; i &lt; 10; i++)<br />{<br />if(minuty_jednosci == i)<br />{<br />tablica&#91;3&#93; = tab&#91;i&#93;;<br />PORTA = pozycja&#91;3&#93;;<br />PORTD = tablica&#91;3&#93;;<br />}<br />}<br /><br />}<br />///////////////////////////////////////////////////////////////////////////////////////<br />int main(void)<br />{<br /><br />sekundy = 8520;<br />        DDRD = 0xFF;<br />        PORTD = 0xff;<br />        DDRA = 0x0f;<br />        PORTA = 0x0f;<br />        //ustawienie timera<br />        TCCR1B |= (1&lt;&lt;WGM12); //tryb ctc<br />        TCCR1B |= (1&lt;&lt;CS11)|(1&lt;&lt;CS10);<br />        OCR1A= 15625;<br />        TIMSK |= (1&lt;&lt;OCIE1B);<br />        sei();<br /><br />        while(1)<br />        {<br /><br />        }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2310">M3pasix</a> — 29 gru 2013, o 19:23</p><hr />
]]></content>
</entry>
</feed>