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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-07-02T16:51:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=20916&amp;mode</id>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-07-02T16:51:33+01:00</updated>
<published>2018-07-02T16:51:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209466#p209466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209466#p209466"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209466#p209466"><![CDATA[
Korekta do pierwszego primo.  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> <br />Po przeanalizowaniu na spokojnie. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />założenia: taktowanie 8MHz,<br /><br />dla <br />[syntax=c]_delay_ms(1);[/syntax]<br />__tmp = (8e6 / 4e3) *1 = 2000.<br />ticks = __temp.<br />_delay_loop_2(2000) , trwa 4cykle razy 2000, = <strong>8000</strong> cykli. 8000/8000000 = (<strong>0,001 s</strong>). <br /><br />dla<br />[syntax=c]_delay_ms(0.95);[/syntax]<br />__tmp = (8e6 / 4e3) * 0.95 = 1900.<br />ticks = __tmp.<br />_delay_loop_2(1900) , trwa 4cykle razy 1900, = <strong>7600</strong> cykli. 7600/8000000 = (<strong>0,00095 s</strong>).<br /><br />dzięki @<strong>krish</strong>, dzięki @<strong>andrews</strong>, <br />sorka @<strong>wrctomi</strong>.<br />musiałem naprostować.<br /> <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 2 lip 2018, o 16:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-07-02T10:08:45+01:00</updated>
<published>2018-07-02T10:08:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209463#p209463</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209463#p209463"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209463#p209463"><![CDATA[
O kurczaki, ...<br />Racja!!!<br /> dzięki @andrews. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Wysłane z mojego Lenovo K33a42 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 2 lip 2018, o 10:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-07-02T09:18:13+01:00</updated>
<published>2018-07-02T09:18:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209461#p209461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209461#p209461"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209461#p209461"><![CDATA[
<div class="quotetitle">Daro69 napisał(a):</div><div class="quotecontent"><br />z tym że w tym przypadku i tak potraktuje to 0.95 jako 1.<br /></div><br />Chyba niekoniecznie. Zwróć uwagę, że w miejscu, które zaznaczyłeś w kodzie, to <strong><em>__tmp</em></strong> jest porównywane z wartością<strong><em>1.0</em></strong>, a <strong><em>__tmp != __ms</em></strong>, chyba że <strong><em>F_CPU=4000</em></strong>, co jest raczej rzadko spotykane <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=14165">andrews</a> — 2 lip 2018, o 09:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2018-07-01T22:09:14+01:00</updated>
<published>2018-07-01T22:09:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209454#p209454</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209454#p209454"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209454#p209454"><![CDATA[
Faktem jest, że później te funkcje mogą się różnie zachowywać (np. różna dokładność) i nie informować o tym.<br />W pewnych szczególnych przypadkach dokumentacja wskazuje, że nawet nie będzie opóźnienia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 1 lip 2018, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-07-01T20:12:05+01:00</updated>
<published>2018-07-01T20:12:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209450#p209450</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209450#p209450"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209450#p209450"><![CDATA[
<div class="quotetitle">krish napisał(a):</div><div class="quotecontent"><br />Panowie nie wprowadzajcie w błąd.<br /></div><br />no tak, <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> double. <br />z tym że w tym przypadku i tak potraktuje to 0.95 jako 1.  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br />[syntax=c]void<br />_delay_ms(double __ms)<br />{<br />double __tmp ; <br />#if ...<br />...<br />#else<br />uint16_t __ticks;<br />__tmp = ((F_CPU) / 4e3) * __ms;<br />if (__tmp &lt; 1.0)   &lt;&lt;-----------------------------------------<br />__ticks = 1;  &lt;&lt;-----------------------------------------<br />else if (__tmp &gt; 65535)<br />{<br />//__ticks = requested delay in 1/10 ms<br />__ticks = (uint16_t) (__ms * 10.0);<br />while(__ticks)<br />{<br />// wait 1/10 ms<br />_delay_loop_2(((F_CPU) / 4e3) / 10);<br />__ticks --;<br />}<br />return;<br />}<br />else<br />__ticks = (uint16_t)__tmp;<br />_delay_loop_2(__ticks);<br />#endif[/syntax]<br />ale fakt, przyjmuje parametr double. czyli źle pamiętałem , a zapis <strong>&quot;_delay_ms(0.95);&quot;</strong> jest poprawny.  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 1 lip 2018, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2018-07-01T19:06:40+01:00</updated>
<published>2018-07-01T19:06:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209448#p209448</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209448#p209448"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209448#p209448"><![CDATA[
Panowie nie wprowadzajcie w  błąd. <br />Funkcja _delay_ms() może przyjmować argumenty z &quot;przecinkiem&quot;<br />Taki jest prototyp (deklaracja): void _delay_ms(<strong>double</strong> __ms).<br /><a href="https://www.microchip.com/webdoc/AVRLibcReferenceManual/group__util__delay_1gad22e7a36b80e2f917324dc43a425e9d3.html"  class="postlink">https://www.microchip.com/webdoc/AVRLibcReferenceManual/group__util__delay_1gad22e7a36b80e2f917324dc43a425e9d3.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 1 lip 2018, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-07-01T09:56:19+01:00</updated>
<published>2018-07-01T09:56:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209420#p209420</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209420#p209420"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209420#p209420"><![CDATA[
Dzięki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 1 lip 2018, o 09:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szpilek]]></name></author>
<updated>2018-07-01T09:34:36+01:00</updated>
<published>2018-07-01T09:34:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209418#p209418</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209418#p209418"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209418#p209418"><![CDATA[
Kolega wyżej napisał: przerwania, timery.<br />Co do przecinka to chodzi o tą linię:<br />_delay_ms(0.95); -&gt; zły argument funkcji<br />Tak nazwa makra może zawierać '_'<br /><br />Proponuję zacząć od nauki języka, jakaś książka, tutorial <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=2485">szpilek</a> — 1 lip 2018, o 09:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-07-01T07:39:07+01:00</updated>
<published>2018-07-01T07:39:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209417#p209417</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209417#p209417"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209417#p209417"><![CDATA[
Witam.A jak zrobić żeby funkcja nie blokowała głównej pętli (while).A co do przecinka to tam go nie ma.Jest makro definicja [syntax=c]DELAY_MS 1000.[/syntax]Chyba nazwa może być z _ ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 1 lip 2018, o 07:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-06-28T22:24:43+01:00</updated>
<published>2018-06-28T22:24:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209381#p209381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209381#p209381"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209381#p209381"><![CDATA[
W drugim primo,<br />chodziło mi i funkcję &quot;moja_fun&quot; a nie o licz. <br /><br />Wysłane z mojego Lenovo K33a42 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 28 cze 2018, o 22:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-06-28T22:21:43+01:00</updated>
<published>2018-06-28T22:21:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209380#p209380</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209380#p209380"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209380#p209380"><![CDATA[
Witam,<br />Tak zetknąłem na kod i ...<br />Po pierwsze primo:<br />Z tego co pamiętam to funkcji _deay_ms nie podajemy parametrów z przecinkiem.<br />Po drugie primo:<br />Czy kolega ma świadomość że w funkcji bodajże &quot;licz&quot;, blokuje pętlę główna pętlą while.?<br />Po trzecie primo:<br />... hmm... Z uwagi na te delaye ...<br />Chyba czas zainteresować się timerami i przerwaniami. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Powaga. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />I wszystko stanie się prostsze. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Pozdrawiam.<br /><br />Wysłane z mojego Lenovo K33a42 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 28 cze 2018, o 22:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-28T18:24:15+01:00</updated>
<published>2018-06-28T18:24:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209378#p209378</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209378#p209378"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209378#p209378"><![CDATA[
Witam.Czy można w tej funkcji zrobić   while (ms++). Jak to zrobić?<br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define  DELAY_MS 1000<br /><br />//**********deklaracja funkcji**********<br /><br />void moja_fun(uint16_t ms);<br /><br /><br />// *****zmienne globalne*****<br /><br />uint8_t licz;<br /><br />int main() {<br /><br />     PORTD|=(1&lt;&lt;PD6);<br /><br /> lcd_init();<br /><br />lcd_locate(0,0);<br />lcd_str(&quot;start...&quot;);<br /><br /><br /><br />/******** główna pętla programu*********/<br /><br />while (1) {<br /><br />if (!(PIND &amp; (1 &lt;&lt; PD6))) {<br /><br />licz++;<br /><br />moja_fun(DELAY_MS);<br /><br />if (licz &gt; 10) licz = 0;<br /><br />lcd_locate(1, 1);<br />lcd_char(' ');<br /><br />}<br /><br />lcd_locate(1, 0);<br />lcd_int(licz);<br /><br />}<br /><br />}<br /><br />void moja_fun(uint16_t ms) {<br /><br />       while (ms--) {<br /><br />       _delay_ms(0.95);<br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 28 cze 2018, o 18:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-25T18:16:44+01:00</updated>
<published>2018-06-25T18:16:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209314#p209314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209314#p209314"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209314#p209314"><![CDATA[
Muszę poćwiczyć.Dziękuje Wszystkim za podpowiedzi.Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 25 cze 2018, o 18:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-06-25T18:26:40+01:00</updated>
<published>2018-06-25T17:39:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209313#p209313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209313#p209313"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209313#p209313"><![CDATA[
witam,<br />albo funkcja która nic nie zwraca, ale na podstawie parametrów coś wykonuje.<br /><br />[syntax=c]void ustaw_pin_pb(uint8_t bit, uint8_t stan){ // &lt;---funkcji podajemy dwa parametry, bit i stan.<br />     if(stan)PORTB |=(1&lt;&lt;bit); else PORTB &amp;=~(1&lt;&lt;bit);<br />}[/syntax]<br />wkodzie wpis<br /><br />[syntax=c]ustaw_pin_pb(3,1); // ustawi stan wysoki na PB3, <br />ustaw_pin_pb(0,0); // ustawi stan niski na pinie PB0[/syntax]<br />taki przykład. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />albo np. funkcja zwracająca stan na porcie B, funkcji nie podajemy parametrów.<br /><br />[syntax=c]uint8_t zwroc_stan_pb(void){ // &lt;----funkcja zwraca wartość uint8_t.<br />  uint8_t stan;<br />  stan = PINB;<br />  return stan; // zwraca stan pinów na porcie<br />}[/syntax]<br /><br />albo funkcja zwracająca stan bitu 0 na porcie B, funkcji nie podajemy parametrów bo np. nie potrzebujemy.<br /><br />[syntax=c]uint8_t zwroc_stan_pb_0(void){<br />moja_flaga_pb_0 = 1; // ustawiłem flagę (zmienną globalną na 1.......ale gdzieś trzeba ją zerować.)<br /><br />  uint8_t stan_pb_0;<br />  stan_pb_0 = PINB &amp; 1; //  ...albo...&amp;(1&lt;0) to samo - maska.<br />  return stan_pb_0; // zwraca albo 1 albo 0 zależnie jaki jest stan na PB0;<br />}[/syntax]<br /><br />......................................................<br /><div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />A jak zrobić żeby funkcja jeśli się wykona dała jak gdyby potwierdzenie wykonania,zakończenia np do zmiennej globalnej w postaci np 1.<br /></div><br /><br />a można w funkcji przecież zmienić jakąś zmienną globalną na 1. np. flaga_mojej_funkcji.<br /><br />pozdrawiam.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />dopiszę................w ostatnim przykładzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 25 cze 2018, o 17:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-25T17:36:08+01:00</updated>
<published>2018-06-25T17:36:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209312#p209312</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209312#p209312"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209312#p209312"><![CDATA[
Zaczynam rozumieć. A jak zrobić żeby funkcja jeśli się wykona dała jak gdyby potwierdzenie wykonania,zakończenia np do zmiennej globalnej w postaci np 1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 25 cze 2018, o 17:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2018-06-25T16:32:14+01:00</updated>
<published>2018-06-25T16:32:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209310#p209310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209310#p209310"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209310#p209310"><![CDATA[
Np. funkcja licząca iloczyn dwóch liczb:<br />[syntax=c]int iloczyn (int x, int y)<br />{<br />  int iloczyn_xy;<br />  iloczyn_xy = x * y;<br />  return iloczyn_xy;<br />}[/syntax]<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 25 cze 2018, o 16:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2018-06-25T16:39:30+01:00</updated>
<published>2018-06-25T16:29:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209309#p209309</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209309#p209309"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209309#p209309"><![CDATA[
Np masz taką funkcję do włączania ledów:<br />[syntax=c]void zapal_leda(uint8_t nr_leda){<br />   if(nr_leda==1) PORTB |= (1&lt;&lt;PB1);<br />   if(nr_leda==2) PORTB |= (1&lt;&lt;PB2);<br />   if(nr_leda==3) PORTB |= (1&lt;&lt;PB3);<br />}[/syntax]<br /><br />Teraz gdy chcemy zapalić diodę led o numerze 2 poprostu wywołujemy funkcję z numerem tej diody, wywołana funkcja porówna przekazany parametr z warunkami, i jeśli któryś warunek będzie spełniony wykona instrukcję czyli zapali diodę.<br /><br />[syntax=c]uint8_t zapal_lub_zgas_leda(uint8_t nr_leda, uint8_t on_off){<br />   if(nr_leda==0) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB0); else PORTB &amp;= ~(1&lt;&lt;PB0);<br />   }<br />   if(nr_leda==1) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB1); else PORTB &amp;= ~(1&lt;&lt;PB1);<br />   }<br />   if(nr_leda==2) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB2); else PORTB &amp;= ~(1&lt;&lt;PB2);<br />   }<br />   if(nr_leda==3) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB3); else PORTB &amp;= ~(1&lt;&lt;PB3);<br />   }<br />   if(nr_leda==4) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB4); else PORTB &amp;= ~(1&lt;&lt;PB4);<br />   }<br />   if(nr_leda==5) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB5); else PORTB &amp;= ~(1&lt;&lt;PB5);<br />   }<br />   if(nr_leda==6) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB6); else PORTB &amp;= ~(1&lt;&lt;PB6);<br />   }<br />   if(nr_leda==7) {<br />      if(on_off)PORTB |= (1&lt;&lt;PB7); else PORTB &amp;= ~(1&lt;&lt;PB7);<br />   }<br />   return PORTB<br />}[/syntax]<br />Tu masz z kolei bardziej rozbudowaną funkcję do której przekazujesz dwa parametry - numer diody i czy ma zostać zapalona czy zgaszona (0 zgaś, 1 i więcej - zapal), natomiast przed nazwą funkcji nie ma void tylko jest uint8_t co oznacza że funkcja coś zwraca - w tym wypadku stan całego portu - czyli podłączonych wszystkich ledów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 25 cze 2018, o 16:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-25T15:59:31+01:00</updated>
<published>2018-06-25T15:59:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209308#p209308</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209308#p209308"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209308#p209308"><![CDATA[
wkładać jej dane wejściowe poprzez parametry. A skąd te dane spływają.Proszę o jakiś praktyczny przykład .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 25 cze 2018, o 15:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2018-06-25T15:32:08+01:00</updated>
<published>2018-06-25T15:32:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209306#p209306</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209306#p209306"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209306#p209306"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />Jeśli chcę przekazać jakieś zmienne do funkcji muszą to być zmienne globalne tak?I je można użyć jako parametry funkcji?<br /></div>Nie. Zmienne globalne są widoczne w całym projekcie, więc ich nie musisz przekazywać (choc to nie jest zabronione). Przekazuje się zmienne lokalne.<br /><div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />uint8_t funkcja(uint8_t,uint8_t);<br />Funkcja która zwraca uint8_t a parametry do czego służą?Mógłby ktoś napisać przykład?I wyjaśnić.Z góry dziękuje za cierpliwość<br /></div>To jak z obiadem. Masz wyjście (zwracany parametr), czyli coś co uzyskałeś w garnku. Ale aby funkcja mogła robić coś co nie jest zawsze tym samym obiadem, to musisz móc wkładać jej dane wejściowe poprzez parametry.<br />Przekazując składniki jako parametry do funkcji gotuj obiad, dostajesz z niej wynik czyli obiad na talerzu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Jak nie przekazujesz parametrów przy wywołaniu funkcji nie ma wejściowych parametrów. Czyli przy wywołaniu nie dostarczasz jej zmiennych danych do działania. Oczywiście funkcja może bazować na zmiennych globalnych, ale nie jest to porządne rozwiązanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 25 cze 2018, o 15:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-25T14:58:16+01:00</updated>
<published>2018-06-25T14:58:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209305#p209305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209305#p209305"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209305#p209305"><![CDATA[
Jeśli chcę przekazać jakieś zmienne do funkcji muszą to być zmienne globalne tak?I je można użyć jako parametry funkcji?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 12 minutach ]</span></strong><br /><br />uint8_t funkcja(uint8_t,uint8_t);<br />Funkcja która zwraca uint8_t a parametry do czego służą?Mógłby ktoś napisać przykład?I wyjaśnić.Z góry dziękuje za cierpliwość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 25 cze 2018, o 14:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2018-06-25T12:08:38+01:00</updated>
<published>2018-06-25T12:08:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209301#p209301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209301#p209301"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209301#p209301"><![CDATA[
Chyba nie do końca. Jeśli chcesz, żeby funkcja coś zwróciła, to w funkcji używasz &quot;return&quot; (w Twoim przypadku return a+b -&gt; zwraca sumę a i b)<br />Jeżeli chcesz przekazać do funkcji jakieś zmienne, na których będziesz wykonywał obliczenia, to wtedy przy <span style="text-decoration: underline">deklaracji</span> funkcji zaznaczasz, ile i jakiego typu zmiennych chcesz używać. A potem wywołujesz funkcję z wartościami, na których chcesz operować.<br />Spróbuj jaśniej opisać, jak to widzisz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 25 cze 2018, o 12:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-25T11:27:40+01:00</updated>
<published>2018-06-25T11:27:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209300#p209300</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209300#p209300"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209300#p209300"><![CDATA[
Czyli jeśli chcę wywołać funkcje która posiada wewnątrz jakieś parametry np.2 to wywołuje ją tak  funkcja(0,0);??Żeby zwróciła to co ma w środku?.<br />A jeśli wewnątrz nie ma żadnych innych wartości  np.przy dodawaniu  funkcja(100,100).Przy wywołaniu  funkcja zwróci wartość 200 ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 19 minutach ]</span></strong><br /><br />Czy dobrze rozumuje?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 25 cze 2018, o 11:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2018-06-25T10:56:25+01:00</updated>
<published>2018-06-25T10:56:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209298#p209298</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209298#p209298"/>
<title type="html"><![CDATA[Re: Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209298#p209298"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />Dlaczego w wywołaniu funkcji muszę wpisywać (0,0) żeby kompilator nie wyrzucał błędu?<br /></div>Ponieważ funkcja przyjmuje dwa argumenty (oba typu uint8_t). A jeżeli funkcja jest zadeklarowana z argumentami, więc musisz je podać przy wywołaniu funkcji.<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />A jak wpisze tak to wartości są brane z wewnątrz funkcji?A wartości są pomijane(100,100).<br /></div>Tak się dzieje, ponieważ przy wywołaniu funkcji zmienne a i b mają wartości 100 i 100. Natomiast niżej przypisujesz tym zmiennym nowe wartości. Więc te nowe będą brane pod uwagę przy obliczeniu wyniku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 25 cze 2018, o 10:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-06-25T10:32:22+01:00</updated>
<published>2018-06-25T10:32:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209297#p209297</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209297#p209297"/>
<title type="html"><![CDATA[Parametry funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20916&amp;p=209297#p209297"><![CDATA[
Witam.Mam pytanko odnośnie parametrów.Dlaczego w wywołaniu funkcji muszę wpisywać (0,0) żeby kompilator nie wyrzucał błędu?Podam przykład:<br /><br /> [syntax=c]/*********deklaracja funkcji***********/<br /><br />uint8_t dodawanie(uint8_t , uint8_t );<br /><br /><br /><br />int main() {<br /><br /><br />    lcd_init();<br /><br />lcd_locate(0,0);<br />lcd_str(&quot;start...&quot;);<br /><br />        lcd_locate(1,0);<br />lcd_int(dodawanie(0,0));<br /><br />/******** główna pętla programu*********/<br /><br />while (1) {<br /><br /><br />}<br /><br />}<br /><br />/********** definicja funkcji**********/<br /><br />uint8_t dodawanie(uint8_t a, uint8_t b) {<br /><br />a = 11;<br />b = 12;<br /><br />return a + b;<br />}[/syntax]<br /><br />A jak zrobię tak to funkcja oblicza wartość.<br /><br />[syntax=c]uint8_t dodawanie(uint8_t , uint8_t );<br /><br /><br />int main() {<br /><br /><br /><br />lcd_init();<br /><br />lcd_locate(0,0);<br />lcd_str(&quot;start...&quot;);<br /><br />        lcd_locate(1,0);<br />lcd_int(dodawanie(100,100));<br /><br /><br /><br /> while (1) {<br /><br /><br />  }<br /><br />}<br /><br /><br />uint8_t dodawanie(uint8_t a, uint8_t b) {<br /><br /><br />     return a + b;<br />}[/syntax]<br />Pozdrawiam.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 8 minutach ]</span></strong><br /><br />A jak wpisze tak to wartości są brane z wewnątrz funkcji?A wartości są pomijane(100,100).<br /><br />[syntax=c]uint8_t dodawanie(uint8_t , uint8_t );<br /><br /><br />int main() {<br /><br /><br /><br />lcd_init();<br /><br />lcd_locate(0,0);<br />lcd_str(&quot;start...&quot;);<br /><br />    lcd_locate(1,0);<br />lcd_int(dodawanie(100,100));<br /><br /><br /><br /> while (1) {<br /><br />    }<br /><br />}<br /><br /><br />uint8_t dodawanie(uint8_t a, uint8_t b) {<br /><br />a=10;<br />    b=5;<br /><br />     return a + b;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 25 cze 2018, o 10:32</p><hr />
]]></content>
</entry>
</feed>