<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=16825&amp;mode" />

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16825&amp;mode</id>
<entry>
<author><name><![CDATA[amilo_pa]]></name></author>
<updated>2016-11-16T00:01:03+01:00</updated>
<published>2016-11-16T00:01:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174844#p174844</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174844#p174844"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174844#p174844"><![CDATA[
*anshar Chyba tak zrobię <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=3824">amilo_pa</a> — 16 lis 2016, o 00:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-11-15T23:10:00+01:00</updated>
<published>2016-11-15T23:10:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174839#p174839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174839#p174839"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174839#p174839"><![CDATA[
Próbowałbym raczej jako drugi argument tej funkcji przekazywać bezpośrednio tablicę korekty gamma. <br />Może coś w tym stylu:<br />[syntax=c]void control_leds (TLED *SLED, const uint8_t * gamma)// funkcja obsługi pojedynczego LEDa<br />{<br />        //pętla rozjaśniająca<br />        if (!SLED-&gt;LED_timer &amp;&amp; SLED-&gt;flag)<br />        {<br />                SLED-&gt;LED_pwm=(pgm_read_byte(&amp;gamma&#91;(SLED-&gt;i)&#93;);     //zapisanie wartości korekcji gamma do sygnału PWM<br />                if(SLED-&gt;i &lt; SLED-&gt;pwm_max)     SLED-&gt;i++;      //sprawdzenie czy został osiągnięty maksymelny strumień świetlny<br />                if (SLED-&gt;i==SLED-&gt;pwm_max)     SLED-&gt;flag = FALSE;     // jeżeli osiągną to zeruj flagę<br />                SLED-&gt;LED_timer = SLED-&gt;timer_set;      //ponowne ustawienie okresu sygnału PWM<br />        }<br /><br />        // pętla stopniowo ściemniająca<br />        if(!SLED-&gt;LED_timer &amp;&amp; !SLED-&gt;flag)<br />        {<br />                SLED-&gt;LED_pwm=(pgm_read_byte(&amp;gamma&#91;(SLED-&gt;i)&#93;);;     //zapisanie wartości korekcji gamma do sygnału PWM<br />                SLED-&gt;i--;                                              //zmniejszanie wartości współczynnika PWM<br />                if (!SLED-&gt;i)   SLED-&gt;flag = TRUE;<br />        }<br /><br />}[/syntax]<br /><br />Wywołanie funkcji:<br />[syntax=c]control_leds (cos_tam, gamma_correctionR);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 15 lis 2016, o 23:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HomoChemicus]]></name></author>
<updated>2016-11-15T22:43:47+01:00</updated>
<published>2016-11-15T22:43:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174834#p174834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174834#p174834"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174834#p174834"><![CDATA[
Makra są wykonywane przez preprocesor jeszcze przed kompilacją na kod maszynowy.<br />Pisząc:<br /> [syntax=c]#define GAMMAR(a) (pgm_read_byte(&amp;gamma_correctionR&#91;a&#93;))<br />//pozostały kod<br />SLED-&gt;LED_pwm=GAMMAR(SLED-&gt;i);     //zapisanie wartości korekcji gamma do sygnału PWM[/syntax]<br />Piszesz:<br />[syntax=c]SLED-&gt;LED_pwm=pgm_read_byte(&amp;gamma_correctionR&#91;(SLED-&gt;i)&#93;)[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10470">HomoChemicus</a> — 15 lis 2016, o 22:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[amilo_pa]]></name></author>
<updated>2016-11-15T22:17:19+01:00</updated>
<published>2016-11-15T22:17:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174828#p174828</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174828#p174828"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174828#p174828"><![CDATA[
ok, już zaciemniam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />W poradniku dotyczącym korekcji gamma zadeklarowałeś np. taką makrodefinicję [syntax=c]#define GAMMAR(a) (pgm_read_byte(&amp;gamma_correctionR&#91;a&#93;))[/syntax].<br />W projekcie będę wykorzystywał kilkanaście diod LED (nie będą to diody tego samego rodzaju i koloru) i napisałem funkcję (umieszczoną powyżej) do sterowania jasnością świecenia tych diod za pomocą modulacji PWM. W tej funkcji korzystam z makra <em>GAMMAG</em>. To makro jest na sztywno dodane do tej funkcji a chciałbym podczas wywoływania funkcji wybrać z którego makra ma ta funkcja korzystać.  I teraz pytanie brzmi, w jaki sposób zadeklarować argument funkcji tak, aby odwoływał się do jednego z makr.<br />O coś takiego mi chodzi (linijka 6 i 15):<br />[syntax=c]void control_leds (TLED *SLED, ARGUMENT_ODWOŁUJĄCY_SIĘ_DO_MAKRA)// funkcja obsługi pojedynczego LEDa<br />{<br />//pętla rozjaśniająca<br />if (!SLED-&gt;LED_timer &amp;&amp; SLED-&gt;flag)<br />{<br />SLED-&gt;LED_pwm=ARGUMENT_ODWOŁUJĄCY_SIĘ_DO_MAKRA(SLED-&gt;i);//zapisanie wartości korekcji gamma do sygnału PWM<br />if(SLED-&gt;i &lt; SLED-&gt;pwm_max)SLED-&gt;i++;//sprawdzenie czy został osiągnięty maksymelny strumień świetlny<br />if (SLED-&gt;i==SLED-&gt;pwm_max)SLED-&gt;flag = FALSE;// jeżeli osiągną to zeruj flagę<br />SLED-&gt;LED_timer = SLED-&gt;timer_set;//ponowne ustawienie okresu sygnału PWM<br />}<br /><br />// pętla stopniowo ściemniająca<br />if(!SLED-&gt;LED_timer &amp;&amp; !SLED-&gt;flag)<br />{<br />SLED-&gt;LED_pwm=ARGUMENT_ODWOŁUJĄCY_SIĘ_DO_MAKRA(SLED-&gt;i);//zapisanie wartości korekcji gamma do sygnału PWM<br />SLED-&gt;i--;//zmniejszanie wartości współczynnika PWM<br />if (!SLED-&gt;i)SLED-&gt;flag = TRUE;<br />SLED-&gt;LED_timer = SLED-&gt;timer_set;//ponowne ustawienie okresu sygnału PWM<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3824">amilo_pa</a> — 15 lis 2016, o 22:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HomoChemicus]]></name></author>
<updated>2016-11-15T22:05:28+01:00</updated>
<published>2016-11-15T22:05:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174827#p174827</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174827#p174827"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174827#p174827"><![CDATA[
Najlepiej będzie jeżeli za pomocą kodu pokażesz, co chcesz zrobić. Aktualnie jest tylko zgadywanie co autor miał na myśli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10470">HomoChemicus</a> — 15 lis 2016, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-15T20:24:29+01:00</updated>
<published>2016-11-15T20:24:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174820#p174820</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174820#p174820"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174820#p174820"><![CDATA[
to ma być argument funkcji czy co? bo ja już nie wiem o co tobie chodzi teraz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 lis 2016, o 20:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[amilo_pa]]></name></author>
<updated>2016-11-15T19:30:25+01:00</updated>
<published>2016-11-15T19:30:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174811#p174811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174811#p174811"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174811#p174811"><![CDATA[
Mirk to ma być zmienna, funkcja czy coś innego? Chcę tam dodawać makro GAMMA ().<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3824">amilo_pa</a> — 15 lis 2016, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-15T17:30:05+01:00</updated>
<published>2016-11-15T17:30:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174797#p174797</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174797#p174797"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174797#p174797"><![CDATA[
<div class="quotetitle">amilo_pa napisał(a):</div><div class="quotecontent"><br />W jaki sposób należy dodać kolejny argument przesyłany do funkcji<br /></div><br />Noooo panie kolego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... Bluebooka masz przecież i nie zajrzysz ? ...<br /><br />przecinek dodać i po przecinku następny argument <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> w nawiasach okrągłych funkcji<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 lis 2016, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[amilo_pa]]></name></author>
<updated>2016-11-15T15:52:23+01:00</updated>
<published>2016-11-15T15:52:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174792#p174792</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174792#p174792"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174792#p174792"><![CDATA[
Właśnie skończyłem z tym walczyć i już naprawiłem <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=3824">amilo_pa</a> — 15 lis 2016, o 15:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2016-11-15T15:51:04+01:00</updated>
<published>2016-11-15T15:51:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174791#p174791</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174791#p174791"/>
<title type="html"><![CDATA[Re: Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174791#p174791"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 15 lis 2016, o 15:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[amilo_pa]]></name></author>
<updated>2016-11-15T15:51:53+01:00</updated>
<published>2016-11-15T15:45:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174790#p174790</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174790#p174790"/>
<title type="html"><![CDATA[Przekazanie makrodefinicji do funkcji ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16825&amp;p=174790#p174790"><![CDATA[
Witam,<br /><br />Zdefiniowałem funkcję rozjaśniającą i ściemniającą LEDa. Jednakże, w tej funkcji miałem z góry umieszczoną makrodefinicje z korekcją gamma. W jaki sposób należy dodać kolejny argument przesyłany do funkcji podczas jej wywoływania tak, abym mógł podczas wywołania tej funkcji odwoływać się do różnych makrodefinicji z innymi tabelami korekty gamma?<br /><br />[syntax=c]void control_leds (TLED *SLED)// funkcja obsługi pojedynczego LEDa<br />{<br />//pętla rozjaśniająca<br />if (!SLED-&gt;LED_timer &amp;&amp; SLED-&gt;flag)<br />{<br />SLED-&gt;LED_pwm=GAMMAG(SLED-&gt;i);//zapisanie wartości korekcji gamma do sygnału PWM<br />if(SLED-&gt;i &lt; SLED-&gt;pwm_max)SLED-&gt;i++;//sprawdzenie czy został osiągnięty maksymelny strumień świetlny<br />if (SLED-&gt;i==SLED-&gt;pwm_max)SLED-&gt;flag = FALSE;// jeżeli osiągną to zeruj flagę<br />SLED-&gt;LED_timer = SLED-&gt;timer_set;//ponowne ustawienie okresu sygnału PWM<br />}<br /><br />// pętla stopniowo ściemniająca<br />if(!SLED-&gt;LED_timer &amp;&amp; !SLED-&gt;flag)<br />{<br />SLED-&gt;LED_pwm=GAMMAG(SLED-&gt;i);//zapisanie wartości korekcji gamma do sygnału PWM<br />SLED-&gt;i--;//zmniejszanie wartości współczynnika PWM<br />if (!SLED-&gt;i)SLED-&gt;flag = TRUE;<br />SLED-&gt;LED_timer = SLED-&gt;timer_set;//ponowne ustawienie okresu sygnału PWM<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3824">amilo_pa</a> — 15 lis 2016, o 15:45</p><hr />
]]></content>
</entry>
</feed>