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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-19T14:10:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17103&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-12-19T14:10:06+01:00</updated>
<published>2016-12-19T14:10:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177890#p177890</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177890#p177890"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177890#p177890"><![CDATA[
<div class="quotetitle">Marhef napisał(a):</div><div class="quotecontent"><br />Mirku, w rozbudowanym przykładzie wkradł się błąd... taki malutki:<br /></div><br />No oczywiście masz rację - sorki - piszę na szybko to i o pomyłkę łatwo poprawię to tak<br /><br />[syntax=c]if( 100 == (mstick % 200) ) LED3_TOG;[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">Marhef napisał(a):</div><div class="quotecontent"><br />Miałem na myśli sytuację, kiedy z kodu nie wynika górna granica wartości zmiennej.<br /></div><br /><br />generalnie górna granica zmiennej zawsze będzie granicą typu jeśli puścimy ją na żywioł <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czyli dla uint8_t będzie to 255, dla uint16_t będzie to 65535 itd i czasem wystarczy nawet takie podejście gdy nie jest to aż tak istotne czy podczas przekręcania się licznika jakieś nasze rzekome procesy się nie odpalą albo odpalą nie w tej kolejności jednorazowo ... czasem ma to małe albo drugorzędne znaczenie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 gru 2016, o 14:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-12-19T13:48:27+01:00</updated>
<published>2016-12-19T13:48:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177889#p177889</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177889#p177889"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177889#p177889"><![CDATA[
Mirku, w rozbudowanym przykładzie wkradł się błąd... taki malutki:<br />[syntax=&quot;c&quot;]if( 200 == (mstick % 200) ) LED3_TOG;[/syntax]Nigdy reszta z dzielenia przez 200 nie będzie równa 200 (piszę, żeby nie zaciemniać początkującym).<br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />nie nie, to nie jest na wszelki wypadek i jak mówię - można byłoby w takim przykładzie pominąć modulo ale przeanalizuj sobie ten przypadek nieco bardziej rozbudowany, który pokazałem wyżej<br /></div>Nie miałem podglądu na cały kod, i może nieprecyzyjnie się wyraziłem. Miałem na myśli sytuację, kiedy z kodu nie wynika górna granica wartości zmiennej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 19 gru 2016, o 13:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-12-19T13:28:48+01:00</updated>
<published>2016-12-19T13:28:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177885#p177885</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177885#p177885"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177885#p177885"><![CDATA[
<div class="quotetitle">Sparrow-hawk napisał(a):</div><div class="quotecontent"><br />Moim zdaniem w tym przypadku kogoś troszkę poniosła fantazja.<br /></div><br />A moim zdaniem kolega kompletnie nie ma wyobraźni i stąd pisze tego typu głupoty ....<br /><br />Ja rozumiem, że można nie zgadzać się z pewnym tokiem przekazywania wiedzy czy sposobu dydaktycznego ale takie personalne prztyki to głupota poniżej krytyki ....<br /><br />To zrozumiałe, że w przypadku który pokazuję w poradniku akurat można byłoby się obejść bez modulo ... czyli w ten sposób<br /><br />[syntax=c]if (200 == mstick) LED3_TOG;<br />if (500 == mstick) LED6_TOG;[/syntax]<br /><br />Są jednak ważne powody dlaczego postanowiłem w taki a nie inny sposób zaprezentować wykorzystanie modulo ...<br /><br />1. Dlatego, żeby początkujące osoby mogły lepiej zrozumieć w ogóle działanie modulo i jak można się nim posługiwać w kodzie - rozdzielać np zadania w prosty sposób w zależności od czasu<br /><br />2. Dlatego, że jeśli NAWET w tym przypadku z poradnika, gdybym chciał zrealizować nieco inne częstotliwości operacji np:<br /><br />[syntax=c]if(  50 == (mstick % 100) ) .... // jakieś zadanie;<br />if( 100 == (mstick % 200) ) LED3_TOG; // wykonuj to 6x częściej niż kolejny warunek<br />if( 500 == (mstick % 600) ) LED6_TOG;<br /><br />if( mstick % 2 ) .... // rób coś co drugi obieg[/syntax]<br /><br />to co? no pytam ... to co ? .... Przykład w poradniku akurat konstruowałem pod kątem robala i równych odcinków czasu dlatego na końcu ograniczyłem mstick do 599 bo był konkretny cel do realizacji ... lecz widać po tym przykładzie jak fajnie można go modyfikować i stosować wiele różnych modyfikacji - dostosowując do własnych potrzeb - tak jak przykład wyżej. Gdyby nie fakt, że mnóstwo osób po obejrzeniu poradnika, podkreślam MNÓSTWO osób dostrzegło te możliwości i wpadło na własne pomysły zastosowań modulo we własnych kodach - to nie pisałbym tego co piszę .... Ale mam bardzo dobry kontakt ze swoimi widzami i czytelnikami .... stąd wiem, że ten poradnik i TEN SPOSÓB przekazu informacji bardzo dobrze się przyjął.<br /><br />Oczywiście są również osoby początkujące, którym i ten przykład jeszcze ciężko zrozumieć ... dlatego jest to forum aby dopytać i pomóc sobie nawzajem .... bo warto<br /><br />To że kolega Sparrow-hawk ma wiedzę z zakresu C to pewnie oczywiste tak samo jak to, że kompletnie nie potrafi czegoś szerzej wyjaśnić i przekazać tej swojej wiedzy, nawet nie jest tym zainteresowany - woli po prostu przeszkadzać .... A na to nie pozwolę sobie - przynajmniej na tym forum ... proszę sobie popierniczyć o swoich fantazjach na innych forach czy własnym blogu. Bo dyskutować to pan się musisz dopiero uczyć od samego początku.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br /><div class="quotetitle">Marhef napisał(a):</div><div class="quotecontent"><br />A masz całkowitą pewność, że zawsze x &lt; NUM? Właśnie dlatego stosuje się zapis x % NUM, tak na wszelki wypadek.<br /></div><br /><br />nie nie, to nie jest na wszelki wypadek i jak mówię - można byłoby w takim przykładzie pominąć modulo ale przeanalizuj sobie ten przypadek nieco bardziej rozbudowany, który pokazałem wyżej - ale jeszcze raz go przytoczę<br /><br /><br />[syntax=c]if(  50 == (mstick % 100) ) .... // jakieś zadanie;<br />if( 100 == (mstick % 200) ) LED3_TOG; // wykonuj to 6x częściej niż kolejny warunek<br />if( 500 == (mstick % 600) ) LED6_TOG;<br /><br />if( mstick % 2 ) .... // rób coś co drugi obieg[/syntax]<br /><br />tu widać już w PEŁNI jak można sobie regulować pięknie czasem wywoływanych procesów oraz - ich częstotliwością<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 gru 2016, o 13:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-12-19T13:12:07+01:00</updated>
<published>2016-12-19T13:12:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177882#p177882</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177882#p177882"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177882#p177882"><![CDATA[
W tym przypadku, który był powyżej mam.<br /><br />Po za tym, co to znaczy tak na wszelki wypadek. To znaczy mam zmienną, co do której wartości nie jestem pewien? Taki zapis jak powyżej owszem, będzie działał dla zmiennych większych niż NUM, ale tak naprawdę, to przyczyni się tylko do ukrycia błędu w kodzie. Bo chyba pisząc taki kod, zakładasz, że zmienna x będzie zawsze mniejsza od NUM. <br /><br />Jeżeli zamiast do NUM, twoja zmienna x będzie hulać od 0 do 32767, to co ile zdarzeń stracisz synchronizację?<br /><br />Zastanawiam się, czy kompilator wiedząc, że zmienna x &lt; NUM zoptymalizuje kod i wyrzuci te operacje modulo?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 19 gru 2016, o 13:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-12-19T12:39:56+01:00</updated>
<published>2016-12-19T12:39:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177879#p177879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177879#p177879"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177879#p177879"><![CDATA[
I tak i nie.<br />Jest tak jak piszesz, bo jeżeli weźmiesz resztę z dzielenia liczby 800 przez 600, to dostaniesz 200 (i tu masz rację). Ale 200 dostaniesz też, jeżeli podzielisz 200 przez 600 (tego przypadku nie wziąłeś pod uwagę).<br /><div class="quotetitle">Sparrow-hawk napisał(a):</div><div class="quotecontent"><br />Skoro zmienna x jest zawsze mniejsza NUM, to jaki jest sens wykonywania działania x % NUM, skoro dla wszystkich x &lt; NUM wyrażenie x % NUM = x?<br /></div>A masz całkowitą pewność, że zawsze x &lt; NUM? Właśnie dlatego stosuje się zapis x % NUM, tak na wszelki wypadek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 19 gru 2016, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zorro]]></name></author>
<updated>2016-12-19T12:24:31+01:00</updated>
<published>2016-12-19T12:24:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177876#p177876</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177876#p177876"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177876#p177876"><![CDATA[
<div class="quotetitle">gonzicz napisał(a):</div><div class="quotecontent"><br />Jak podzielisz np 100 przez 600 to jest 0 i reszta 100. Jak podzielisz 35%600=35, bo wynikiem dzielenia jest 0 i reszta 35.<br /></div><br /><br />Teraz zaskoczyłem.<br />Czy moje rozumowanie jest błędne?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14587">zorro</a> — 19 gru 2016, o 12:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-12-19T12:19:38+01:00</updated>
<published>2016-12-19T12:19:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177875#p177875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177875#p177875"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177875#p177875"><![CDATA[
Moim zdaniem w tym przypadku kogoś troszkę poniosła fantazja. Czytelniej i prościej: <br />[syntax=c]if (200 == mstick) LED3_TOG;<br />if (500 == mstick) LED6_TOG;[/syntax]<br />Skoro zmienna x jest zawsze mniejsza NUM, to jaki jest sens wykonywania działania x % NUM, skoro dla wszystkich x &lt; NUM wyrażenie x % NUM = x?<br /><br />Natomiast takie zastosowanie operatora modulo, jest o wiele sensowniejsze:<br />[syntax=c]if (0 == mstick % 100) LED3_TOG;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 19 gru 2016, o 12:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2016-12-19T11:54:48+01:00</updated>
<published>2016-12-19T11:54:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177871#p177871</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177871#p177871"/>
<title type="html"><![CDATA[Re: Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177871#p177871"><![CDATA[
Jak podzielisz np 100 przez 600 to jest 0 i reszta 100. Jak podzielisz 35%600=35, bo wynikiem dzielenia jest 0 i reszta 35.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 19 gru 2016, o 11:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zorro]]></name></author>
<updated>2016-12-19T12:14:53+01:00</updated>
<published>2016-12-19T11:40:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177870#p177870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177870#p177870"/>
<title type="html"><![CDATA[Operator modulo.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17103&amp;p=177870#p177870"><![CDATA[
Witam.<br />Modulo % reszta z dzielenia. W książce BB są przykłady np:<br /><br />10%7=3<br />5%3=2<br />I to jest jasne.<br /><br />Natomiast w poradniku wideo o modulo jest np:<br /><br />[syntax=c]if 200 == (mstick % 600) LED3_TOG;<br />if 500 == (mstick % 600) LED6_TOG;[/syntax]<br /><br />Więc według mego rozumowania to:<br /><br />mstick z pierwszego przykładu powinien zliczyć do 800 aby reszta była 200<br />mstick z drugiego przykładu powinien zliczyć do 1100 aby reszta była 500<br /><br />Natomiast Mirek mstick zeruje przy wartości &gt;599.<br />Gdzie popełniam błąd przy moim rozumowaniu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14587">zorro</a> — 19 gru 2016, o 11:40</p><hr />
]]></content>
</entry>
</feed>