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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-03-02T00:01:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=1724&amp;mode</id>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2014-03-02T00:01:21+01:00</updated>
<published>2014-03-02T00:01:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=72689#p72689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=72689#p72689"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=72689#p72689"><![CDATA[
@Log teraz to mnie zaskoczyłeś <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Świetny efekt.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=211">osa1313</a> — 2 mar 2014, o 00:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LogTeam]]></name></author>
<updated>2014-03-01T23:33:35+01:00</updated>
<published>2014-03-01T23:33:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=72681#p72681</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=72681#p72681"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=72681#p72681"><![CDATA[
To kto tam chciał migającą atmegę? <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><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=738">LogTeam</a> — 1 mar 2014, o 23:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T19:09:20+01:00</updated>
<published>2013-04-28T19:09:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35533#p35533</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35533#p35533"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35533#p35533"><![CDATA[
<div class="quotetitle">ElSor napisał(a):</div><div class="quotecontent"><br />Można oczywiście, tyle, że przywykłem już do Atmel Studio i nie zamierzam zmieniać moich upodobań <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Ale broń boże nie traktuj tego co pisałem żebym miał ciebie czy kogokolwiek kto woli AVR Studio - żeby zmieniał na Eclipse na siłę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Pewnie że każdy woli to co lubi itp <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />to bardziej podpowiedź dla innych, którzy mogliby pomyśleć że w Eclipse się czegoś nie da <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=54">mirekk36</a> — 28 kwi 2013, o 19:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ElSor]]></name></author>
<updated>2013-04-28T19:04:42+01:00</updated>
<published>2013-04-28T19:04:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35531#p35531</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35531#p35531"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35531#p35531"><![CDATA[
Można oczywiście, tyle, że przywykłem już do Atmel Studio i nie zamierzam zmieniać moich upodobań <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Dodam też, że pierwsze kroki z C robiłem w Eclipse i w AS i mimo wszystko wybrałem AS ale chyba nie to jest tutaj najistotniejsze, bo w obu ten sam kod da dokładnie te same efekty - ważniejsze aby nauczyć się dobrze pisać uw kod a tutaj daleka droga jeszcze przede mną (na razie bluebook doczytałem do połowy, czyli do jak na razie interesujących mnie zagadnień).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1267">ElSor</a> — 28 kwi 2013, o 19:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T18:52:07+01:00</updated>
<published>2013-04-28T18:52:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35530#p35530</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35530#p35530"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35530#p35530"><![CDATA[
<div class="quotetitle">ElSor napisał(a):</div><div class="quotecontent"><br />Ma tylko 1 wadę o której pisaliśmy na Twoim blogu - trzeba programować w Atmel Studio 6 lub zmienić plik konfiguracyjny AVR Dude, tak, żeby można było programować ATTiny13<strong>A</strong>, który to zawiera dodatkowo rejestr PRR względem wersji mikroprocesora bez A na końcu.<br /></div><br /><br />Ależ wcale nie trzeba w AVR Studio 6 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> można spokojnie w Eclipse - tzn już można w ECLIPSE - wystarczy sobie skorzystać z poradnika:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/11/instalka-eclipse-atmel-toolchain.html" >http://mirekk36.blogspot.com/2012/11/in ... chain.html</a><!-- m --><br /><br />następnie wystarczy sobie powielić IDENTYCZNY wpis w avrdude.config tzn ATtiny13 skopiować i dać nazwę ATtiny13A (bo odnośnie programowania NICZYM się nie różni) i już można mieć WSZYSTKO w Eclipse - podobnie można zrobić prawie z każdym prockiem który się nie różni pod względem programowania. A jeśli się różni co nieco - to wtedy można wziąć MkAvrCalculator i z niego sobie zainstalować AVRDUDE które jest podrasowane i bsługuje już dużo więcej procków niż oryginalne AVRDUDE. Co więcej - jak któregoś nie ma to dajesz znać - i dorabiamy żeby kolejny był w MkAvrCalculatorze i jego avrdude <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />zresztą zobacz na zrzut ekranu po kompilacji twojego programu i ustawienie procka w moim Eclipse z atmelowskim toolchainem ... <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/54/fe4befbdfd893413140aab76bef05e90.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/54/fe4befbdfd893413140aab76bef05e90.jpg" alt="Obrazek" /></a><br /><br />jak widzisz czas leci, wszystko idzie do przodu i w Eclipse można na prawdę wszystko co potrzeba do wygodnego programowania zamiast męczyć się z kocim AVR Studio <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=54">mirekk36</a> — 28 kwi 2013, o 18:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ElSor]]></name></author>
<updated>2013-04-28T17:52:43+01:00</updated>
<published>2013-04-28T17:52:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35524#p35524</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35524#p35524"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35524#p35524"><![CDATA[
Ma tylko 1 wadę o której pisaliśmy na Twoim blogu - trzeba programować w Atmel Studio 6 lub zmienić plik konfiguracyjny AVR Dude, tak, żeby można było programować ATTiny13<strong>A</strong>, który to zawiera dodatkowo rejestr PRR względem wersji mikroprocesora bez A na końcu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1267">ElSor</a> — 28 kwi 2013, o 17:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T13:21:32+01:00</updated>
<published>2013-04-28T13:21:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35492#p35492</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35492#p35492"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35492#p35492"><![CDATA[
ElSor --&gt; brawo !!! mega - bardzo pouczający przykład <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=54">mirekk36</a> — 28 kwi 2013, o 13:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ElSor]]></name></author>
<updated>2013-04-28T09:38:45+01:00</updated>
<published>2013-04-28T09:38:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35475#p35475</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35475#p35475"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=35475#p35475"><![CDATA[
A tutaj moja koncepcja ekonomiczna do migania diodą. Zamiast timera użyłem WatchDoga, który to budzi ze snu procesor, po to tylko, aby przełączyć stan diody na przeciwny.<br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/sleep.h&gt;<br /><br />#define LED (1&lt;&lt;PB1)<br />#define kierunek DDRB<br /><br /><br />void inicjacje (void)<br />{<br />kierunek |= LED; //ustawienie pinu LEDa jako wyjśie, reszta jako wejścia<br />WDTCR |= (1&lt;&lt;WDTIE) | (1&lt;&lt;WDCE) | (1&lt;&lt;WDP3); //ustawienie przerwania od WD co 4s<br />sei(); //zezwolenie na przerwania<br />set_sleep_mode(SLEEP_MODE_PWR_DOWN); //lub sleep_mode_idle jak bedzie ADC lub timer włączony<br />sleep_enable();<br />}<br /><br />void oszczedzanie_pradu(void)<br />{<br />ACSR |= (1&lt;&lt;ACD); //wylaczenie komparatora<br />PRR |= (1&lt;&lt;PRTIM0) | (1&lt;&lt;PRADC); //wyłączenie ADC i TIMERa0<br />//napiecie odniesienia powinno zostac wylaczone jesli fusy od bodlvl sa wylaczone<br />}<br /><br /><br />int main(void)<br />{<br />        inicjacje();<br />oszczedzanie_pradu();<br />while(1)<br />    {<br /><br />        sleep_mode();<br /> <br />    }<br />return 0;<br />}<br /><br />ISR (WDT_vect)<br />{<br />port ^= LED;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1267">ElSor</a> — 28 kwi 2013, o 09:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[worner]]></name></author>
<updated>2013-02-13T15:01:36+01:00</updated>
<published>2013-02-13T15:01:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27914#p27914</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27914#p27914"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27914#p27914"><![CDATA[
No no, widzę, że kolega Osa nie zasypywał gruszek w przysłowiowym popiele. Jestem pod wrażeniem i to dużym postępu w nauce. Notabene niektóre efekty są bardzo ciekawe, np. Nr 4. Oby tak dalej, postępy widać znaczne.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=150">worner</a> — 13 lut 2013, o 15:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-02-08T20:32:30+01:00</updated>
<published>2013-02-08T20:32:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27255#p27255</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27255#p27255"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27255#p27255"><![CDATA[
<div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />Bardzo elegancko!<br />Jak oceniasz poziom trudności w korzystaniu z funkcji?<br /></div><br /><br />Nie jest to takie trudne, ale muszę przyznać że jeszcze sporo nauki przede mną na temat funkcji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Teraz chociaż pętla wygląda elegancko <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><em><span style="text-decoration: underline">Edytowane 10/02/2013</span></em><br /><br />Zrobiłem nowe menu lecz tym razem wykorzystałem wyświetlacz LED, zapraszam do obejrzenia filmu poniżej <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <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=211">osa1313</a> — 8 lut 2013, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-02-07T00:27:05+01:00</updated>
<published>2013-02-07T00:27:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27094#p27094</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27094#p27094"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=27094#p27094"><![CDATA[
Bardzo elegancko!<br />Jak oceniasz poziom trudności w korzystaniu z funkcji?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=750">Domanoid</a> — 7 lut 2013, o 00:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-31T16:57:59+01:00</updated>
<published>2013-01-31T16:57:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26434#p26434</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26434#p26434"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26434#p26434"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />No Osa... pojechałes po bandzie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  A i fajnie wiedzieć, że switch case generuje więcej kodu...  Póki co nie zaprzątałem tym sobie głowy, ale wrócę na to uwage w moich kolejnych &quot;projektach&quot;. Osa już mnie dzisiaj podpytywał o funkcje, czyli możemy się spodziewać, że na dniach powstanie coś nowego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br /><br />Może będzie coś nowego <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Tak funkcje zjadam po małym kawałku, bo jednak nie przywiązywałem do nich tyle uwagi ile powinienem na samym początku <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Na początek moje funkcje wyglądają tak jak Doman pisze <br /><br />void efekt1 (void)<br />{<br /><br />}<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano o 18:50 ]</span></strong><br />Poniżej wklejam kod jaki napisałem używając funkcji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Krytyka mile widziana w końcu na niej człowiek się uczy cale życie.<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 31 Jan 2013<br /> *      Author: osa1313 projekt team<br /> */<br />//Dwa klawisze, jednym klawiszem wlaczamy diody po kolei a drugim wylaczamy diody po kolei<br /><br /><br />//Pliki naglowkowe<br />#include &lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br /><br />//Makrodefinicje klawiszy<br />#define KLAWISZ1 (1&lt;&lt;PD0)<br />#define KLAWISZ2 (1&lt;&lt;PD1)<br /><br />//Petla glowna<br />int main(void)<br />{<br />//Inicjalizacje<br />DDRC = 0xFF;//PORT C jako wyjscie<br />PORTC = 0xFF;//PORT C stan wysoki<br />DDRD &amp;= ~(KLAWISZ1 | KLAWISZ2);//PORT D KLAWISZ1 oraz KLAWISZ2 wejscia<br />PORTD |= KLAWISZ1 | KLAWISZ2;//PORT D KLAWISZ1 oraz KLAWISZ2 podciagniecie do VCC (wewnetrzny rezystor)<br /><br />void EFEKT1 (void);//Deklaracja funkcji EFEKT1do wlaczania diod<br />void EFEKT2 (void);//Deklaracja funkcji EFEKT2 do wylaczania diod<br /><br />uint8_t KLAWISZ_ON (uint8_t KLAWISZ);//Deklaracja funkcji KLAWISZ_ON<br /><br />while(1)//Petla nieskonczona<br />{<br />if(  KLAWISZ_ON (KLAWISZ1) )//Jezeli KLAWISZ1 nacisniety wykonaj petle ponizej<br />{<br />EFEKT1 ();//Wywolanie funkcji EFEKT1<br />}<br />else if( KLAWISZ_ON(KLAWISZ2) )//Jezeli KLAWISZ2 nie zostal nacisniety lecz KLAWISZ1 to wykonaj petle ponizej<br />{<br />EFEKT2 ();//Wywolanie funkcji EFEKT2<br />}<br />}<br />}<br /><br />void EFEKT1 (void)//Definicja funkcji EFEKT1 void ktora nie zwraca zadnego wyniku oraz niema zadnych argumetow ktore by byly przekazywane do niej (void)<br />{<br />for(int8_t i=0; i&lt;=7; i++)//Diody od PD0 do PD7 sie wlaczaja<br />{<br />PORTC &amp;= ~(1&lt;&lt;i);<br />_delay_ms (250);<br />}<br />}<br /><br />void EFEKT2 (void)//Definicja funkcji EFEKT2 void ktora nie zwraca zadnego wyniku oraz niema zadnych argumetow ktore by byly przekazywane do niej (void)<br />{<br />for(int8_t i=7; i&gt;=0; i--)//Diody od PD7 do PD0 sie wylaczaja<br />{<br />PORTC |= (1&lt;&lt;i);<br />_delay_ms (250);<br />}<br />}<br /><br />uint8_t KLAWISZ_ON (uint8_t KLAWISZ)//Definicja funkcji sprawdzajacej czy jest stan niski na ktoryms z klawiszy<br />{<br />if( !(PIND &amp; KLAWISZ) )//Ktorys z klawiszy nacisniety ?<br />{<br />_delay_ms(80);//Drgania stykow<br /><br />if( !(PIND &amp; KLAWISZ) )//Ktorys z klaiwszy nacisniety ?<br />{<br />return 1;//Jezeli ktorys z klawiszy zostal nacisniety petla sie wykona poniewaz zwaracam wartosc wieksza niz 0<br />}<br />}<br />return 0;//Jezeli klawisz nie nacisniety to petla sie nie wykona<br />}<br /><br />[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Kod jest ładnie poukładany w eclipse, ale na forum się rozjeżdża dlatego wrzucam linka do dropa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><!-- m --><a class="postlink" href="http://db.tt/0R0XOxVp" >http://db.tt/0R0XOxVp</a><!-- m --><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=211">osa1313</a> — 31 sty 2013, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-30T16:46:03+01:00</updated>
<published>2013-01-30T16:46:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26299#p26299</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26299#p26299"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26299#p26299"><![CDATA[
<div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />Spróbuj jako ćwiczenie przepisać ten sam kod ale poszczególne efekty umieścić w funkcjach które będą wywoływane z while(1). Nawet bez callbacków czy system flag. Takie proste funkcje &quot;void efekt1 (void) {}&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br /><br />Przez kolejne parę dni podszlifuję kod i go umieszczę na forum jak będzie gotowy <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=211">osa1313</a> — 30 sty 2013, o 16:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-30T15:46:54+01:00</updated>
<published>2013-01-30T15:46:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26296#p26296</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26296#p26296"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26296#p26296"><![CDATA[
No dzięki za filmik specjalnie dla mnie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ..... kurczę tą opcję widziałem wcześniej ale zawsze jakoś o nie zapominałem .... itp ... Myślałem też że teraz instalujesz jakiś specjalny Plugin<br /><br />ale dzięki temu - filmikowi - NA PEWNO już sobie to zapamiętam (a przynajmniej na dłużej) <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=54">mirekk36</a> — 30 sty 2013, o 15:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-01-30T14:27:10+01:00</updated>
<published>2013-01-30T14:27:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26287#p26287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26287#p26287"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26287#p26287"><![CDATA[
Dałeś kod prosząc o krytykę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> to skrytykowałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />A kod mógł równie dobrze się rozwlec przy wklejaniu na forum. Ładnie mi posłużył do pokazania funkcji autoformatowania <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Ogólnie jeśli jest napisany od zera, od początku przez ciebie to <strong>wyszło naprawdę fajnie</strong>, oprócz tych kilku rzeczy wyszczególnionych wyżej <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Spróbuj jako ćwiczenie przepisać ten sam kod ale poszczególne efekty umieścić w funkcjach które będą wywoływane z while(1). Nawet bez callbacków czy system flag. Takie proste funkcje &quot;void efekt1 (void) {}&quot; <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=750">Domanoid</a> — 30 sty 2013, o 14:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-30T09:02:35+01:00</updated>
<published>2013-01-30T09:02:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26275#p26275</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26275#p26275"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26275#p26275"><![CDATA[
Doman niezłe narzędzie a zwłaszcza jak trzeba sprawdzić kogoś innego kod, a wygląda jak ten mój powyżej <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Doman zapewniam cie że reszta moich kodów wygląda dużo lepiej tylko ten tak się rozlazł <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=211">osa1313</a> — 30 sty 2013, o 09:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-01-30T00:54:33+01:00</updated>
<published>2013-01-30T00:54:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26267#p26267</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26267#p26267"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26267#p26267"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent">(u mnie dba o to własnoręcznie ustawiony autoformater kodu bazujący na K&amp;R).<br /></div><br />A tu sam dopytam, bo widzę że u ciebie to pełno takich gadżetów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... o co tu dokładniej chodzi ? co to za autoformater ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /></div><br /><br />Krótki filmik lepszy od 1 000 000 słów (zdjęcie lepsze od 1000 <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />).<br /><!-- m --><a class="postlink" href="http://youtu.be/yl5Km0jBxro" >http://youtu.be/yl5Km0jBxro</a><!-- m --><br />Od połowy pokazuję gdzie są ustawienia, każdy ustawia pod siebie. Niestety tych dodatkowych spacji samo nie potrafi poprawić, bo w sumie program nie wie gdzie są one potrzebne a gdzie nie.<br />Lepiej oglądać na yt na pełnym ekranie. Nagrane na szybko <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Kiedy lepiej używać switch/case? Bo jak wiadomo znacznie zwiększa rozmiar kodu. Kiedy jest szybsze od if/else if?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=750">Domanoid</a> — 30 sty 2013, o 00:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-29T17:06:52+01:00</updated>
<published>2013-01-29T17:06:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26227#p26227</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26227#p26227"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26227#p26227"><![CDATA[
<div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />W linijce 110 po if () jest ;, tak samo linijka 192 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />......<br /></div><br /><br />Domanoid nie wiem kiedy ten znak tam się wkradł ale wiem że go nie powinno tam być <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> myślę że przy dodawaniu komentarzy wieczorkiem dwa takie błędy mi się zdarzyły <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Hmm odstępy też mnie irytują ale jak tylko będę miał czas to przywrócę program do porządku <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />A co do  <strong>switch</strong> i <strong>if</strong>ów pierwsze menu było napisane z wykorzystaniem <strong>if</strong>ów lecz w książce zauważyłem że można używać switch i case do zrobienia prostego menu, <br />i dla praktyki chciałem zobaczyć czy mi się w ogóle uda no i efekt mojej pracy widać na filmiku <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Co do funkcji to miałem zamiar się nimi zająć w ten weekend ponieważ nie będę ukrywał ale kod z funkcjami wygląda dużo lepiej ale to dla mnie nadal czarna magia choć spróbuje to opanować <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> no i jak Mirek pisze <br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />jak najszybciej sięgać po funkcje po to aby pętla While była prawie pusta - co najwyżej wywoływanych z niej kilka funkcji <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Jak tylko poprawie kod to wrzucę tutaj bo z tymi funkcjami nie będzie łatwo <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=211">osa1313</a> — 29 sty 2013, o 17:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-29T09:53:19+01:00</updated>
<published>2013-01-29T09:53:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26169#p26169</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26169#p26169"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26169#p26169"><![CDATA[
<div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />Pamiętaj - też jestem początkujący, ale uwagi swoje mogę mieć <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /></div><br />Pewnie że tak, tym bardziej że bardzo słuszne uwagi i pomocne.<br /><br /><div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />Jedyne co mnie irytuje to mnóstwo odstępów. Ale to kwestia przyzwyczajenia. Mi kod bardziej zwarty się lepiej czyta.<br />Do tego powiem tak...<br /></div><br />Zdecydowanie popieram.<br /><br /><div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />Switch/Case jest w przypadku avr trochę niefortunna <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br />No tu się trochę nie zgodzę ale tylko z takim generalizowaniem, dlatego że nie zawsze podczas programowania w C akurat różnica wielkości kodu wynikowego ma największą wagę, czasem czytelność kodu a czasem (w zależności od konstrukcji) kodu i switch/case może wypaść lepiej jeśli chodzi np o czas <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ..... więc tylko taka drobna uwaga żeby nie pomyśleć że w przypadku AVR switch/case jest niepotrzebny<br /><br /><br /><div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />(u mnie dba o to własnoręcznie ustawiony autoformater kodu bazujący na K&amp;R).<br /></div><br />A tu sam dopytam, bo widzę że u ciebie to pełno takich gadżetów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... o co tu dokładniej chodzi ? co to za autoformater ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br /><div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br />Tutaj może nie ma to dużego sensu, ale poszczególne efekty proponowałbym zawrzeć w osobnych funkcjach, co by jeszcze bardziej uczytelniło kod <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br />I to jest chyba esencja całego programowania w C ....<br /><br />jak najszybciej sięgać po funkcje po to aby pętla While była prawie pusta - co najwyżej wywoływanych z niej kilka funkcji <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=54">mirekk36</a> — 29 sty 2013, o 09:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-01-29T01:06:02+01:00</updated>
<published>2013-01-29T01:06:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26158#p26158</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26158#p26158"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26158#p26158"><![CDATA[
W linijce 110 po if () jest ;, tak samo linijka 192 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Jedyne co mnie irytuje to mnóstwo odstępów. Ale to kwestia przyzwyczajenia. Mi kod bardziej zwarty się lepiej czyta.<br />Do tego powiem tak... Switch/Case jest w przypadku avr trochę niefortunna <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Przerobiłem kod zamieniając wszystkie switch/case na proste if`y. Do tego skracając te wszystkie odstępy.<br />Kod wygląda w tym momencie tak:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 25 Jan 2013<br /> *      Author: osa1313 projekt team<br /> */<br /><br />//Bazgroly (nie patrzec na komentarze hehe)<br />//Klawiszem jeden wybieramy menu od 1 do 8 a diody sygnalizuja na ktorym obecnie sie znajdujemy<br />//Jezeli klawisz zostanie nacisniety wiecej razy niz jest pozycji menu, diody zostana zgaszone oraz wartosc i wyzerowana<br />//aby umozliwic ponowny wybor menu.<br />//Klawisz 2 sluzy do zatwierdzenia menu ktore wybralismy oraz aby zostala wykonana petla switch (efekty)<br />//Pliki naglowkowe<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//Makrodefinicje klawiszy oraz mkara sprawdzajace stan niski na nich<br />#define KEY_PIN1 (1&lt;&lt;PD0)<br />#define KEY_DOWN1 !(PIND &amp; KEY_PIN1)<br /><br />#define KEY_PIN2 (1&lt;&lt;PD1)<br />#define KEY_DOWN2 !(PIND &amp; KEY_PIN2)<br /><br />//Petla glowna main<br />int main(void) {<br />//Inicjalizacje<br />DDRC = 0xFF;            //PORTC jako wyjscie<br />PORTC = 0xFF;           //PORTC wylaczony poprzez wstawienie jedynek<br /><br />DDRA = 0xFF;            //PORTA jako wyjscie<br />PORTA = 0xFF;           //PORTA wylaczony poprzez wstawienie jedynek<br /><br />DDRD &amp;= ~( KEY_PIN1 | KEY_PIN2 );               //Wejscia PD0 oraz PD1<br />PORTD |= KEY_PIN1 | KEY_PIN2;                   //Podciagniecie klawiszy pod VCC (wewnetrzny rezystor)<br /><br />int8_t i = 0;                     //Deklaracja zmiennej iteracyjnej (i) o wartosci 0<br /><br />while ( 1 )                        //Petla nieskonczona<br />{<br /><br />if ( KEY_DOWN1 )           //Klawisz 1 nacisniety ?<br />{<br />_delay_ms ( 80 );  //Drgania stykow<br />if ( KEY_DOWN1 ) {<br />PORTC &amp;= ~( 1 &lt;&lt; i );               //Zapalaj diody pokazujac jaka wartosc ma zmienna i<br />_delay_ms ( 250 );<br />++i;                                    //Zwiekszaj wartosc i o jeden za kazdym wykonaniem petli<br /><br />if ( i == 9 )                                //Jezeli klawisz zostanie nacisniety wiecej razy niz mamy pozycjy menu, wtedy zacznij odliczac ponownie<br />{<br />i = 0;<br />PORTC = 0xFF;           //Wylacz diody sygnalizujac ze zadne menu nie wybrane<br />}<br />}<br />}<br /><br />if ( KEY_DOWN2 )                           //Kiedy klawisz 2 nacisniety przejdz do petli switch i zapal odpowiednia diode w zaleznosci od wartosci zmiennej i<br />{<br />_delay_ms ( 80 );<br />if ( KEY_DOWN2 ) {<br /><br />//**************Efekt 1****************************<br />if ( i == 1 ) {<br />int8_t x = 0;                                     //Deklaracja zmiennej i<br />for ( x = 0; x &lt;= 7; x++ )                     //i jest rowne 0, rob dopoki i bedzie mniejsze od 7 lub rowne 7, za kadym obiegiem zwieksz wartosc i o 1<br />{<br />PORTA &amp;= ~( 1 &lt;&lt; x );               //Taka jaka wartosc i taki pin portu C zostanie wlaczony<br />_delay_ms ( 100 );                //Odczekaj 100ms<br /><br />}<br /><br />for ( x = 7; x &gt;= 0; x-- )                     //i jest rowne 7, rob dopoki i bedzie wieksze od zero lub jemu rowne, zmniejszaj wartosc i o 1 za kazdym obiegiem<br />{<br />PORTA |= ( 1 &lt;&lt; x );                //Pin portu C wylaczany po kolei<br />_delay_ms ( 100 );                //Odczekaj 100ms<br />}<br />}<br /><br />//*******************Efekt 2**********************<br /><br />if ( i == 2 ) {<br />int8_t p, l;<br />for ( p = 7, l = 0; p &gt;= 4 &amp;&amp; l &lt;= 3; l++, p-- )          //Zapalaj LEDy pokolei az spotkaja sie na srodku (----&gt; &lt;----)<br />{<br />PORTA &amp;= ~( 1 &lt;&lt; l | 1 &lt;&lt; p );<br />_delay_ms ( 100 );<br />}<br /><br />if ( p == 4 &amp;&amp; l == 3 )                                                        //Jezeli petla for sie wykonala oraz  p i l przyjely takie wartosci, wykonaj petle for<br />{<br />for ( p = 4, l = 3; p &lt;= 7 &amp;&amp; l &gt;= 0; p++, l-- )           //Gas LEDy lecz do tylu czyli od srodka na boki (&lt;---- ----&gt;)<br />{<br />PORTA |= ( 1 &lt;&lt; l | 1 &lt;&lt; p );<br />_delay_ms ( 100 );<br />}<br />}<br />}<br /><br />//******************************Efekt 3*****************************<br /><br />if ( i == 3 ) {<br />int8_t i;                               //Zmienna nie jest widoczna przez inne funkcje niz ta<br /><br />for ( i = 0; i &lt;= 7; i++ )             //Zapalaj kolejne diody, tylda ~ powoduje ze tylko jedna dioda jest zapalona (prace w negatywie)<br />{<br />PORTA = ~( 1 &lt;&lt; i );                //Usuniecie tyldy ~ spowoduje prace w negatywie czyli wszytkie LEDy zapalone a jedna sie tylko gasi<br />_delay_ms ( 100 );<br />}<br /><br />for ( i = 7; i &gt;= 0; i-- )             //Kiedy ostatnia dioda zostanie zapalona wroc do poczatku<br />{<br />PORTA = ~( 1 &lt;&lt; i );<br />_delay_ms ( 100 );<br />}<br />PORTA |= 0xFF;<br />}<br /><br />//**********************************Efekt 4***************************<br /><br />if ( i == 4 ) {<br />int8_t n, p;<br /><br />for ( n = 0; n &lt;= 7; n = n + 2 ) {<br />PORTA &amp;= ~( 1 &lt;&lt; n );<br />_delay_ms ( 300 );<br />}<br />for ( p = 7; p &gt;= 0; p = p - 2 ) {<br />PORTA &amp;= ~( 1 &lt;&lt; p );<br />_delay_ms ( 300 );<br />}<br />PORTA = 0xFF;<br />_delay_ms ( 300 );<br />}<br /><br />//********************************Efekt 5********************************************<br /><br />if ( i == 5 ) {<br />int8_t p, l;<br /><br />for ( p = 7, l = 0; p &gt;= 4 &amp;&amp; l &lt;= 3; l++, p-- )          //Zapalaj LEDy pokolei az spotkaja sie na srodku (----&gt; &lt;----)<br />{<br />PORTA = ~( 1 &lt;&lt; l | 1 &lt;&lt; p );<br />_delay_ms ( 100 );<br />}<br />if ( p == 4 &amp;&amp; l == 3 )                                                      //Jezeli petla for sie wykonala oraz  p i l przyjely takie wartosci, wykonaj petle for<br />{<br />for ( p = 4, l = 3; p &lt;= 7 &amp;&amp; l &gt;= 0; p++, l-- )           //Gas LEDy lecz do tylu czyli od srodka na boki (&lt;---- ----&gt;)<br />{<br />PORTA = ~( 1 &lt;&lt; l | 1 &lt;&lt; p );<br />_delay_ms ( 100 );<br />}<br />}<br />PORTA |= 0xFF;<br />}<br /><br />//********************************Efekt 6********************************************<br /><br />if ( i == 6 ) {<br />PORTA &amp;= ~0xFF;<br />_delay_ms ( 300 );<br />PORTA |= 0xFF;<br />_delay_ms ( 300 );<br />}<br /><br />//********************************Efekt 7********************************************<br /><br />if ( i == 7 ) PORTA &amp;= ~0xFF;<br /><br />//********************************Efekt 8********************************************<br /><br />if ( i == 8 ) PORTA |= 0xFF;<br /><br />}<br />}<br />}<br />}<br />[/syntax]<br /><br />Zobacz, co się dzieje po skompilowaniu takiego kodu:<br /><a href="http://forum.atnel.pl/_obrazki/o/750_8790ca302c6567f5fd3c2a0d8b1dfb2d.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/750_8790ca302c6567f5fd3c2a0d8b1dfb2d.png" alt="Obrazek" /></a><br /><br />kod wynikowy PRAWIE 2 RAZY mniejszy!<br />Tak samo ilość linijek kodu, u Ciebie około 270, u mnie 170 - każdy ma prawo robić jak chce. Im mniej tym lepiej <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> (u mnie dba o to własnoręcznie ustawiony autoformater kodu bazujący na K&amp;R).<br /><br />Tutaj może nie ma to dużego sensu, ale poszczególne efekty proponowałbym zawrzeć w osobnych funkcjach, co by jeszcze bardziej uczytelniło kod <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Tyle ode mnie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Pamiętaj - też jestem początkujący, ale uwagi swoje mogę mieć <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=750">Domanoid</a> — 29 sty 2013, o 01:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-28T21:28:16+01:00</updated>
<published>2013-01-28T21:28:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26142#p26142</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26142#p26142"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26142#p26142"><![CDATA[
OK to jest mój kod do menu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Uwagi oraz krytyka mile widziana w końcu po to wrzucam kod aby się czegoś nauczyć od innych ludzi <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><br />Przepraszam za słabą ortografie w komentarzach <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 25 Jan 2013<br /> *      Author: osa1313 projekt team<br /> */<br /><br />//Bazgroly (nie patrzec na komentarze hehe)<br />//Klawiszem jeden wybieramy menu od 1 do 8 a diody sygnalizuja na ktorym obecnie sie znajdujemy<br />//Jezeli klawisz zostanie nacisniety wiecej razy niz jest pozycji menu, diody zostana zgaszone oraz wartosc i wyzerowana<br />//aby umozliwic ponowny wybor menu.<br /><br />//Klawisz 2 sluzy do zatwierdzenia menu ktore wybralismy oraz aby zostala wykonana petla switch (efekty)<br /><br />//Pliki naglowkowe<br />#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br /><br />//Makrodefinicje klawiszy oraz mkara sprawdzajace stan niski na nich<br />#define KEY_PIN1 (1&lt;&lt;PD0)<br />#define KEY_DOWN1 !(PIND &amp; KEY_PIN1)<br /><br />#define KEY_PIN2 (1&lt;&lt;PD1)<br />#define KEY_DOWN2 !(PIND &amp; KEY_PIN2)<br /><br /><br />//Petla glowna main<br />int main(void)<br />{<br />//Inicjalizacje<br />DDRC = 0xFF;//PORTC jako wyjscie<br />PORTC = 0xFF;//PORTC wylaczony poprzez wstawienie jedynek<br /><br />DDRA = 0xFF;//PORTA jako wyjscie<br />PORTA = 0xFF;//PORTA wylaczony poprzez wstawienie jedynek<br /><br />DDRD &amp;= ~( KEY_PIN1 | KEY_PIN2 );//Wejscia PD0 oraz PD1<br />PORTD |= KEY_PIN1 | KEY_PIN2;//Podciagniecie klawiszy pod VCC (wewnetrzny rezystor)<br /><br />int8_t i=0;//Deklaracja zmiennej iteracyjnej (i) o wartosci 0<br /><br /><br />while(1)//Petla nieskonczona<br />{<br /><br />if(KEY_DOWN1)//Klawisz 1 nacisniety ?<br />{<br />_delay_ms(80);//Drgania stykow<br /><br />if(KEY_DOWN1)<br />{<br /><br />PORTC &amp;= ~(1&lt;&lt;i);//Zapalaj diody pokazujac jaka wartosc ma zmienna i<br />_delay_ms (250);<br />++i;//Zwiekszaj wartosc i o jeden za kazdym wykonaniem petli<br /><br />if(i==9)//Jezeli klawisz zostanie nacisniety wiecej razy niz mamy pozycjy menu, wtedy zacznij odliczac ponownie<br />{<br />i=0;<br />PORTC = 0xFF;//Wylacz diody sygnalizujac ze zadne menu nie wybrane<br />}<br /><br />}<br />}<br /><br /><br />if(KEY_DOWN2)//Kiedy klawisz 2 nacisniety przejdz do petli switch i zapal odpowiednia diode w zaleznosci od wartosci zmiennej i<br />{<br /><br />_delay_ms(80);<br /><br />if(KEY_DOWN2)<br />{<br /><br />switch(i)//Zmienna jaka bedzie sprawdzana (moze to tez byc to np. dodawanie )<br />{<br /><br /><br />//**************Efekt 1****************************<br /><br />case 1://Efekt jeden wybrany ?<br />{<br /><br /><br />int8_t x=0;//Deklaracja zmiennej i<br />for(x=0; x&lt;=7; x++)//i jest rowne 0, rob dopoki i bedzie mniejsze od 7 lub rowne 7, za kadym obiegiem zwieksz wartosc i o 1<br />{<br /><br /><br />PORTA &amp;= ~(1&lt;&lt;x);//Taka jaka wartosc i taki pin portu C zostanie wlaczony<br />_delay_ms (100);//Odczekaj 100ms<br /><br />}<br /><br />for(x=7; x&gt;=0; x--)//i jest rowne 7, rob dopoki i bedzie wieksze od zero lub jemu rowne, zmniejszaj wartosc i o 1 za kazdym obiegiem<br />{<br /><br />PORTA |= (1&lt;&lt;x);//Pin portu C wylaczany po kolei<br />_delay_ms (100);//Odczekaj 100ms<br /><br /><br />}<br /><br />}<br /><br />break;//Wyjdz z petli<br /><br /><br />//*******************Efekt 2**********************<br /><br />case 2:<br />{<br /><br />int8_t p,l;<br /><br />for( p=7, l=0; p&gt;=4 &amp;&amp; l&lt;=3; l++, p--)//Zapalaj LEDy pokolei az spotkaja sie na srodku (----&gt; &lt;----)<br />{<br /><br />PORTA &amp;= ~( 1&lt;&lt;l | 1&lt;&lt;p );<br />_delay_ms (100);<br /><br />}<br /><br />if(p==4 &amp;&amp; l==3);//Jezeli petla for sie wykonala oraz  p i l przyjely takie wartosci, wykonaj petle for<br />{<br /><br />for(p=4, l=3; p&lt;=7 &amp;&amp; l&gt;=0; p++, l--)//Gas LEDy lecz do tylu czyli od srodka na boki (&lt;---- ----&gt;)<br />{<br /><br />PORTA |= ( 1&lt;&lt;l | 1&lt;&lt;p );<br />_delay_ms (100);<br /><br />}<br /><br />}<br />}<br /><br />break;<br /><br /><br />//******************************Efekt 3*****************************<br /><br />case 3:<br />{<br />int8_t i;//Zmienna nie jest widoczna przez inne funkcje niz ta<br /><br />for(i=0; i&lt;=7; i++)//Zapalaj kolejne diody, tylda ~ powoduje ze tylko jedna dioda jest zapalona (prace w negatywie)<br />{<br /><br />PORTA = ~(1&lt;&lt;i);//Usuniecie tyldy ~ spowoduje prace w negatywie czyli wszytkie LEDy zapalone a jedna sie tylko gasi<br />_delay_ms (100);<br /><br /><br />}<br /><br />for(i=7; i&gt;=0; i--)//Kiedy ostatnia dioda zostanie zapalona wroc do poczatku<br />{<br /><br />PORTA = ~(1&lt;&lt;i);<br />_delay_ms (100);<br /><br />}<br />PORTA |= 0xFF;<br /><br /><br /><br />}<br />break;<br /><br /><br />//**********************************Efekt 4***************************<br /><br />case 4:<br /><br />{<br />int8_t n,p;<br />for(n=0; n&lt;=7; n=n+2)<br />{<br /><br />PORTA &amp;= ~(1&lt;&lt;n);<br />_delay_ms (300);<br /><br /><br />}<br /><br />for(p=7; p&gt;=0; p=p-2)<br />{<br /><br />PORTA &amp;= ~(1&lt;&lt;p);<br />_delay_ms (300);<br /><br /><br />}<br /><br />PORTA = 0xFF;<br />_delay_ms (300);<br /><br /><br />}<br /><br /><br />break;<br /><br /><br />//********************************Efekt 5********************************************<br /><br />case 5:<br />{<br /><br />int8_t p,l;<br /><br />for( p=7, l=0; p&gt;=4 &amp;&amp; l&lt;=3; l++, p--)//Zapalaj LEDy pokolei az spotkaja sie na srodku (----&gt; &lt;----)<br />{<br /><br />PORTA = ~( 1&lt;&lt;l | 1&lt;&lt;p );<br />_delay_ms (100);<br /><br />}<br /><br />if(p==4 &amp;&amp; l==3);//Jezeli petla for sie wykonala oraz  p i l przyjely takie wartosci, wykonaj petle for<br />{<br /><br />for(p=4, l=3; p&lt;=7 &amp;&amp; l&gt;=0; p++, l--)//Gas LEDy lecz do tylu czyli od srodka na boki (&lt;---- ----&gt;)<br />{<br /><br />PORTA = ~( 1&lt;&lt;l | 1&lt;&lt;p );<br />_delay_ms (100);<br /><br />}<br /><br />}<br />PORTA |= 0xFF;<br />}<br /><br />break;<br /><br /><br />//********************************Efekt 6********************************************<br /><br />case 6:<br />PORTA &amp;= ~0xFF;<br />_delay_ms(300);<br />PORTA |= 0xFF;<br />_delay_ms (300);<br />break;<br /><br />//********************************Efekt 7********************************************<br /><br />case 7:<br /><br />PORTA &amp;= ~0xFF;<br /><br />break;<br /><br />//********************************Efekt 8********************************************<br /><br />case 8:<br /><br />PORTA |= 0xFF;<br /><br />break;<br /><br />}<br /><br />}<br /><br />}<br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=211">osa1313</a> — 28 sty 2013, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-28T17:45:19+01:00</updated>
<published>2013-01-28T17:45:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26102#p26102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26102#p26102"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26102#p26102"><![CDATA[
<div class="quotetitle">augustyn1 napisał(a):</div><div class="quotecontent"><br />Bardzo fajny bajer.<br />Czy kolega osa1313 może wrzucić kod do analizy. Już dawno chciałem sobie zrobić takie mrygadełko tylko nie wiedziałem jak się za to zabrać.<br />Dzięki<br /></div><br /><br />Kod wrzucę wieczorem jak będę miał dostęp do swojego komputera, lecz ostrzegam nie jest on najczytelniejszy <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=211">osa1313</a> — 28 sty 2013, o 17:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[augustyn1]]></name></author>
<updated>2013-01-28T17:24:50+01:00</updated>
<published>2013-01-28T17:24:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26090#p26090</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26090#p26090"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=26090#p26090"><![CDATA[
Bardzo fajny bajer.<br />Czy kolega osa1313 może wrzucić kod do analizy. Już dawno chciałem sobie zrobić takie mrygadełko tylko nie wiedziałem jak się za to zabrać.<br />Dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=59">augustyn1</a> — 28 sty 2013, o 17:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2013-01-26T13:02:58+01:00</updated>
<published>2013-01-26T13:02:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=25870#p25870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=25870#p25870"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=25870#p25870"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />No osa1313 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jak na stan w jakim byłeś na starcie nauki C .... to powiem że niesamowicie MIŁO się patrzy na efekty jakie osiągasz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... na prawdę fajnie zaczynasz sobie radzić i to w szybkim tempie - gratulacje ..<br /></div><br /><br /><br />Dziękuje za pochwałę i mam nadzieje że niedługo zrobię podobne menu ale tym razem na LCD <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 39 minutach ]</span></strong><br /><br />Przez przypadek zamknąłem swoje konto youtube <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />Filmiki wrzucę za parę godzin.<br /><br /><strong><span style="text-decoration: underline">OK konto nowe założyłem i filmiki już działają <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /></span></strong><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=211">osa1313</a> — 26 sty 2013, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-26T12:32:22+01:00</updated>
<published>2013-01-26T12:32:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=25869#p25869</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=25869#p25869"/>
<title type="html"><![CDATA[Re: Mrugające Diody LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1724&amp;p=25869#p25869"><![CDATA[
No osa1313 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jak na stan w jakim byłeś na starcie nauki C .... to powiem że niesamowicie MIŁO się patrzy na efekty jakie osiągasz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... na prawdę fajnie zaczynasz sobie radzić i to w szybkim tempie - gratulacje ..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sty 2013, o 12:32</p><hr />
]]></content>
</entry>
</feed>