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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-26T16:58:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=17979&amp;mode</id>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-03-26T16:58:03+01:00</updated>
<published>2017-03-26T16:58:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185676#p185676</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185676#p185676"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185676#p185676"><![CDATA[
na C był buzer, ale go zlikwidowałem, to jest kod gdzie ćwiczę język C, więc jest trochę bałaganu. Dzisiaj bawiłem się z wyświetlaczem LCD i prawie pół dnia mi to zajęło. muszę to dokładnie rozgryźć <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> to strasznie wciąga tak, tak że prawie cała niedziela przeleciała hehe. teraz chcę sobie coś wyświetlać na lcd, ale muszę jeszcze o tym poczytać. Ten kod , który jest wyżej sam sobie pisałem, więc jest w miarę czytelny, najgorsze jest to,że strasznie się męczyłem z drugim klawiszem i szukałem dlaczego nie działa, kombinowałem z kodem,a okazało się ,że miałem źle zdefiniowany pin. i na tym człowiek najwięcej traci czasu. Ale są tego plusy, ponieważ po drodze można się nauczyć czegoś innego. I tak powoli do przodu <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=14082">wojciechgorzolka</a> — 26 mar 2017, o 16:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[brat_kamyka]]></name></author>
<updated>2017-03-26T13:23:54+01:00</updated>
<published>2017-03-26T13:23:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185637#p185637</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185637#p185637"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185637#p185637"><![CDATA[
witaj ponownie,<br /><br />do klawiszy używasz preprocesora dyrektywa:)<br />[syntax=c]#define KLAWISZ (1&lt;&lt;PD0) //definicja pinu do którego podłączony jest klawisz nr 1<br />#define KLAWISZ_WCISNIETY !(PIND &amp; KLAWISZ) //makro sprawdzające czy klawisz jest wciśnięty  czyli stan NISKI logicznie 0[/syntax]<br />a diodami bawisz się w kodzie bezpośrednio <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  --- ciężko się to czyta,<br />spróbuj użyć tej samej techniki programowania ( preprocesora )<br /><br />[syntax=c]#define DIODA1_LED (1&lt;&lt;PB1) //definicja pinu do którego podłączona jest DIODA nr 1<br />#define ZMIANA_STANU_DIODY PORTB ^=DIODA1_LED  //zmienia stan diody na przeciwny[/syntax]<br />   <br /><br />da to  takie zalety w jednym miejscu definiujesz &quot;hardware&quot; w sposób bardzo przejrzysty (zwiększasz przenośność kodu na inne połączenia (poprawiasz tylko deklaracje #define )<br />po za tym łatwiej będzie ten kod analizować <br />później w kodzie używasz <br />[syntax=c]if (KLAWISZ_WCISNIETY) {<br />     _delay_ms(80);<br />     ZMIANA_STANU_DIODY ;<br />    } // koniec ifa od klawisza[/syntax]<br />  <br />Proszę poczytaj w BB rozdział 4.4 strona 187 do 192.<br />tam masz wszystko jak na tacy podane ..... ( rozbuduj o inne LEDY do robala)<br /><img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br /><br />Między wierszami czytam że diody na PORTB masz zapięte tylko pytanie co jest na PORTC pinie PC0<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6029">brat_kamyka</a> — 26 mar 2017, o 13:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-03-26T11:18:30+01:00</updated>
<published>2017-03-26T11:18:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185626#p185626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185626#p185626"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185626#p185626"><![CDATA[
dziękuję za cenne rady<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 26 mar 2017, o 11:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[brat_kamyka]]></name></author>
<updated>2017-03-26T10:35:36+01:00</updated>
<published>2017-03-26T10:35:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185624#p185624</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185624#p185624"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185624#p185624"><![CDATA[
<div class="quotetitle">Daro69 napisał(a):</div><div class="quotecontent"><br />@<strong>brat_kamyka</strong><br />Normalnie wróżka jesteś.  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br />(bez fotki i kompletnego kodu)-...<br />Jakim cudem domyśliłeś się że problemem jest definicja przycisku. ??  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" />    <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br /> <br />bo błędów logicznych w funkcjach nie znalazłem ...<br />to jak nie kod ???? to co ???? HARDWARE !!!<br /><br />Teraz pytanie do autora wątku po co tworzy się funkcje???<br />Odp. aby poprawić czytelność kodu,  <br />funkcja to cześć kodu realizująca konkretne zadanie ( np. lcd_init(); itd....),<br />ja przeważnie jak pisze to bardzo podobnie do Mirka,<br />wpierw wszystko {co dotyczy jednego problemu} w funkcji main testuję czy działa zgodnie z założeniami,<br />potem przenoszę kod do osobnej funkcji ale uwaga nazwa funkcji musi mi mówić co ona robi (np: send_spi(string mojstring);) <br />i wszystko jasne nie. <br />Innymi słowy :<br />Programowanie to jak budowanie z klocków LEGO wpierw małe dzieci uczą składać klocki DUPLO (każdy klocek to prosta funkcja na przykład: void zapal_diode1(void);)<br />potem przychodzi czas na zwykłe klocki LEGO (np      viod send_spi(string mojstring); która używa klocka DUPLO viod sendchar_spi(char A);)<br />Następnie dostajemy zestaw Lego Technic (np funkcja która ma za zadanie wysłanie napisów do wyświtlacza graficznego podpiętego po SPI ....)<br />a LEGO mindstorm to już wszystko (np prosty system czasu pseudo rzeczywistego -- timery programowe Mirka czy inne sposoby uruchamiania klocków lego Technic).<br />   <br />[syntax=c]while(1)<br />        {<br />        if( KLAWISZ_WCISNIETY == 0) PORTB = 0;  //to się wykona tylko wtedy gdy KLAWISZ_WCISNIETY przyjmuje wartość 0<br />        else if( KLAWISZ_WCISNIETY ) _delay_ms(80);    //to się wykona tylko wtedy gdy KLAWISZ_WCISNIETY przyjmuje wartość większą od 0<br />        if( KLAWISZ_WCISNIETY ) {                       //!!!!nowe sprawdzenie warunku!!!! to się wykona tylko wtedy gdy KLAWISZ_WCISNIETY przyjmuje wartość większą od 0<br />             migacz_foor();<br />             migacz_foor();<br />             migacz_foor();<br />        }[/syntax]<br /><br />Pozdrawiam brat_kamyka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6029">brat_kamyka</a> — 26 mar 2017, o 10:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-03-26T07:35:14+01:00</updated>
<published>2017-03-26T07:35:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185617#p185617</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185617#p185617"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185617#p185617"><![CDATA[
oo cześć Darku. na timerki przyjdzie czas <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=14082">wojciechgorzolka</a> — 26 mar 2017, o 07:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2017-03-26T01:19:51+01:00</updated>
<published>2017-03-26T01:19:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185610#p185610</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185610#p185610"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185610#p185610"><![CDATA[
hejka,  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><div class="quotetitle">brat_kamyka napisał(a):</div><div class="quotecontent"><br />OK ale podpiąć możesz do dowolnego portu ATMEGI ...<br />napisz proszę Ledy port B przycisk pin PC2 czy jak ?<br /><br />Najlepiej daj cały kod ...<br /></div><br />@<strong>brat_kamyka</strong><br />Normalnie wróżka jesteś.  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br />(bez fotki i kompletnego kodu)-...<br />Jakim cudem domyśliłeś się że problemem jest definicja przycisku. ??  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" />    <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />@Wojtek,<br />Widzę że zaczynasz ogarniać pisanie własnych funkcji. - super.  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Przy najbliższej okazji proponuję zainteresować się timerami  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> , bo widzę że używasz jeszcze delaye.  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Wbrew pozorom timery to nie straszydło - tylko tak wygląda na pierwszy rzut oka.  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> a są bardzo przydatne.<br />Jak wejdą w krew, <br />to nawet mruganie jedną diodą chce się pisać z wykorzystaniem  timera.  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Pozdrawiam Darek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 26 mar 2017, o 01:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-03-25T23:09:29+01:00</updated>
<published>2017-03-25T23:09:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185604#p185604</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185604#p185604"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185604#p185604"><![CDATA[
ok, już kopiuję cały kod, chociaż nie chętnie, ponieważ nie chciał bym, aby inni mnie oskarżyli o pójście na łatwiznę  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> . Nie oczekuję konkretnego rozwiązania, ponieważ w taki sposób się nie nauczę pisać kodu. [syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define KLAWISZ (1&lt;&lt;PD0) //definicja pinu do którego podłączony jest klawisz nr 1<br />#define KLAWISZ_WCISNIETY !(PIND &amp; KLAWISZ) //makro sprzwdzające czy klawisz jest wciśnięty<br /><br />#define KLAWISZ_2 (2&lt;&lt;PD1)<br />#define KLAWISZ_2_WCISNIETY !(PIND &amp; KLAWISZ_2)<br /><br />void robal(void);//pierwsza funkcia<br />void robal_2(void);//druga funkcja<br />void pulsar(void);// trzecia funkcja<br /><br />void migacz_foor(void);//funkcja migania diodami - pętla foor<br /><br />//void klawisz_1_robal(void);<br />//********************************************<br />int main (void)<br />{<br />DDRB = 0xFF;// wejscie-wyjście - ustaw jako wyjście<br />PORTB = 0xFF;//podanie stanu wysokiego na PORTB - wygaszenie wszystkich diod<br />DDRC |= (1&lt;&lt;PC0);// wejscie-wyjście - ustaw jako wyjście<br />PORTC &amp;= ~(1&lt;&lt;PC0);//ustaw stan niski<br />PORTB |= (1&lt;&lt;PB0);<br />DDRD &amp;= ~KLAWISZ;<br />PORTD |= KLAWISZ;<br />DDRD &amp;= ~KLAWISZ_2;<br />PORTD |= KLAWISZ_2;<br /><br />_delay_ms(500);<br />while(1)<br />{<br />if( KLAWISZ_WCISNIETY == 0)<br /><br />  PORTB = 0;<br /><br />else<br />if( KLAWISZ_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}<br /><br /><br /><br /><br /><br /><br />/*if(( KLAWISZ_WCISNIETY==0)&amp;&amp;( KLAWISZ_2_WCISNIETY==0 ))<br /><br /> PORTB = 0;<br /><br />else if(( KLAWISZ_WCISNIETY )&amp;&amp;( KLAWISZ_2_WCISNIETY ))<br />_delay_ms(80);<br /> if(( KLAWISZ_WCISNIETY )&amp;&amp;( KLAWISZ_2_WCISNIETY ))<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br />}<br />*/<br />}<br /><br />}<br /><br /><br /> /* if( KLAWISZ_WCISNIETY == 0)<br /><br />  PORTB = 0;<br /><br />else<br />{<br />if( KLAWISZ_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}<br />}<br /><br />}<br />}<br />   else<br />{<br />if( KLAWISZ_2_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_2_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}<br /><br />}<br /><br /><br /><br />}}<br /><br /><br />*/<br /><br />//****************************************************************<br />//definicje funkcji<br /><br />void robal(void)//definicja pierszej funkcji<br />{<br />//PORTB ^= 1&lt;&lt;PB0;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB1;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB2;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB3;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB4;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB5;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB6;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB7;<br />PORTC ^= 1&lt;&lt;PC0;<br />_delay_ms(30);<br />PORTC ^= 1&lt;&lt;PC0;<br /><br />}<br /><br /><br />void robal_2(void)//definicja drugiej funkcji<br />{<br />//PORTB ^= 1&lt;&lt;PB0;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB7;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB6;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB5;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB4;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB3;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB2;<br />_delay_ms(30);<br />PORTB ^= 1&lt;&lt;PB1;<br /><br />}<br /><br />void pulsar(void)//definicja trzeciej funkcji<br />{<br />PORTB  ^=1&lt;&lt;PB1 | 1&lt;&lt;PB2 | 1&lt;&lt;PB3 |1&lt;&lt;PB5| 1&lt;&lt;PB6 | 1&lt;&lt;PB7;<br />_delay_ms(500);<br />PORTB  ^=1&lt;&lt;PB1 | 1&lt;&lt;PB2 | 1&lt;&lt;PB3 |1&lt;&lt;PB5| 1&lt;&lt;PB6 | 1&lt;&lt;PB7;<br />_delay_ms(500);<br /><br />}<br /><br />void migacz_foor(void)//definicja funkcji z pętlą foor<br />{<br />uint8_t i, liczba=1;<br />for( i=0; i&lt;8; i++)<br />{<br />PORTB = ~liczba;<br />liczba = liczba * 2;<br />_delay_ms(30);<br />PORTB = 0xFF;<br />_delay_ms(10);<br />}<br /><br />void klawisz_1_robal(void)//definicja funkcji obsługi klawisza z efektem fobala<br />{<br /> if( KLAWISZ_WCISNIETY == 0)<br /><br />  PORTB = 0;<br /><br />else<br />if( KLAWISZ_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}<br />}<br /><br /><br /><br />}[/syntax]<br /><br />Pytałem o to , czy funkcje jedna w drugiej będą działać, ponieważ chciałem sobie uprościć to co jest w pętli głównej i zastąpić większość kodu nowymi dwiema funkcjami (od pierwszego klawisza i drugiego). Ogólnie rzecz biorąc, to chcę uzyskać efekt następujący: <br />Gdy wcisnę klawisz pierwszy, to ma mi się wykonać robal trzy razy, to samo na drugim klawiszu. Jednak nie jest to takie proste dla mnie. Gdy napiszę instrukcję dla jednego klawisza, to działa pięknie, problem mam też z tym, aby w drugim klawiszu to samo się wykonywało.<br />Podaję przykład jaka jest moja koncepcja na dwa klawisze, niestety po wgraniu kodu nie działa mi to poprawnie :<br />[syntax=c]if(( KLAWISZ_WCISNIETY==0)&amp;&amp;( KLAWISZ_2_WCISNIETY==0 ))<br /><br /> PORTB = 0;<br /><br />else if(( KLAWISZ_WCISNIETY )&amp;&amp;( KLAWISZ_2_WCISNIETY ))<br />_delay_ms(80);<br /> if(( KLAWISZ_WCISNIETY )&amp;&amp;( KLAWISZ_2_WCISNIETY ))<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br />}[/syntax]<br /><br />Czy mogę połączyć obsługę dwóch klawiszy operatorem iloczynu &amp;&amp;   ?<br /><br /><br />Gdy klawisze nie są wciśnięte, to PORTB ma stan 0, <br />gdy wcisnę klawisz i osczekam 80ms , sprawdzę stan klawisza, to robal wykona się trzy razy. i koniec:) <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Dodam jeszcze,że myślałem o koncepcji drugiej :<br />if.........<br />else if..........<br />else if.........<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 14 minutach ]</span></strong><br /><br />taka koncepcja, ale w niej działa tylko pierwszy klawisz, drugi niestety nie uruchamia robala, tylko dlaczego?<br />[syntax=c]while(1)<br />{<br />if( KLAWISZ_WCISNIETY == 0)<br /><br />  PORTB = 0;<br /><br />else<br />if( KLAWISZ_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}<br /><br />else<br />if( KLAWISZ_2_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_2_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}[/syntax]<br /><br />po kompilacji błędy n ie wyskoczyły. a mimo to nie działa.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 30 minutach ]</span></strong><br /><br />:D EUREKA!!!! <br />znalazłem błąd [syntax=c]#define KLAWISZ_2 (2&lt;&lt;PD1)[/syntax]<br /><br />źle zdefiniowałem KLAWISZ_2. ufff:))<br />znów jest satysfakcja <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zwłaszcza,że jestem bardzo zielony z programowania <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" />  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" />  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" />  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /> <br /><br /><br />Bardzo Ci dziękuję za zainteresowanie moim  pytaniem <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=14082">wojciechgorzolka</a> — 25 mar 2017, o 23:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[brat_kamyka]]></name></author>
<updated>2017-03-25T22:46:23+01:00</updated>
<published>2017-03-25T22:46:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185601#p185601</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185601#p185601"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185601#p185601"><![CDATA[
OK ale podpiąć możesz do dowolnego portu ATMEGI ...<br />napisz proszę Ledy port B przycisk pin PC2 czy jak ?<br /><br />Najlepiej daj cały kod ...<br /><br />funkcja void może być wywoływana w innej funkcji.<br />przecież funkcja main jest typu void (na AVR oczywiście).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6029">brat_kamyka</a> — 25 mar 2017, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-03-25T22:41:29+01:00</updated>
<published>2017-03-25T22:41:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185599#p185599</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185599#p185599"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185599#p185599"><![CDATA[
podłączenie diod jak w zestawie ATB czyli katodą do uC, załączają się stanem niskim. kod już poprawiłem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 25 mar 2017, o 22:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[brat_kamyka]]></name></author>
<updated>2017-03-25T22:36:48+01:00</updated>
<published>2017-03-25T22:36:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185598#p185598</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185598#p185598"/>
<title type="html"><![CDATA[Re: funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185598#p185598"><![CDATA[
funkcja migacz_foor() zadziała gdy KLAWISZ_WCISNIETY da wartość prawda czyli &gt;0, tylko pytanie kiedy się to wykona...<br /> u ciebie  jest tak :<br /><br /><br />[syntax=c]if( KLAWISZ_WCISNIETY == 0) <br /><br />       PORTB = 0; // nie wiem co tam zawiszone jest klawisz czy diody cz coś innego bo nic nie piszesz<br />                       //  <br /><br />       else<br />       if( KLAWISZ_WCISNIETY )_delay_ms(80);     // koniec if( KLAWISZ_WCISNIETY == 0)<br /><br /><br />//dalej nowy if <br />if( KLAWISZ_WCISNIETY )  // zwraca TRUE tylko jak większe od 0 jak zero to FALSE<br />                     {<br />                           migacz_foor();<br />                           migacz_foor();<br />                           migacz_foor();<br /><br />                     }[/syntax]<br /><br />nic nie piszesz o podłaczeniu hardware przyciski diody czy co tam masz dalej pomagać bedzie trudno .....<br />ps do umieszczenia kodów używaj znaczników syntax=c  /syntax<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6029">brat_kamyka</a> — 25 mar 2017, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-03-25T22:39:23+01:00</updated>
<published>2017-03-25T22:14:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185596#p185596</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185596#p185596"/>
<title type="html"><![CDATA[funkcja typu void w funkcji typu void- czy to zadziała?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17979&amp;p=185596#p185596"><![CDATA[
Witam. <br />Piszę sobie mały programik do obsługi klawisza i ledów z zestawu ATB i mam problem , bo nie wiem czy ja coś źle robię, czy moja funkcja jest abstrakcją jak obrazy niektórych malarzy. Czy to w ogóle ma prawo działać? Przytoczę przykład -ciało funkcji dla lepszego zobrazowania sytuacji:<br />[syntax=c]void klawisz_1_robal(void)//definicja funkcji obsługi klawisza z efektem fobala<br />{<br /> if( KLAWISZ_WCISNIETY == 0)<br /><br />  PORTB = 0;<br /><br />else<br />if( KLAWISZ_WCISNIETY )<br />_delay_ms(80);<br />if( KLAWISZ_WCISNIETY )<br />{<br />migacz_foor();<br />migacz_foor();<br />migacz_foor();<br /><br />}<br />}[/syntax]<br /><br /><br />wszystko jest pisane dosyć liniowo, ponieważ uczę się posługiwania funkcjami i if-ami, ale jeśli moja funkcja migacz_foor(); jest funkcją typu void i jest wpisana do funkcji, która także jest typu void, to czy to w ogóle będzie działaś? Funkcja migacz_foor() jest typowym robakiem, czyli przesuwa zapaloną diodę z lewa na prawo. w<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 25 mar 2017, o 22:14</p><hr />
]]></content>
</entry>
</feed>