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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-01-06T21:12:14+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=19926&amp;mode</id>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2018-01-06T21:12:14+01:00</updated>
<published>2018-01-06T21:12:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201611#p201611</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201611#p201611"/>
<title type="html"><![CDATA[Re: Obliczanie różnicy zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201611#p201611"><![CDATA[
AAAAA.... <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Na stronie atnel jest o tym artykuł, czytałem go już kiedyś ale chyba pominąłem jakiś szczegół. Muszę się tam wrócić i uzupełnić braki. <br /><br /><br /><span style="color: #4000BF"><strong>andrews</strong> </span> - dzięki za pomoc<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 26 minutach ]</span></strong><br /><br />No jest napisane <br /><br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/domyslna-promocja-do-typu-int.html" >http://atnel.pl/domyslna-promocja-do-typu-int.html</a><!-- m --><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Otóż kompilator zakłada, że z punktu widzenia zachowania najlepszej optymalizacji swoich działań, domyślnie obliczy każde wyrażenie w taki sposób, że jego wynik będzie się mieścił w zakresie liczby typu int<br /></div><br /><br />Z <strong>forum.atnel.pl </strong> wszystko staje się jaśniejsze <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=11828">jez2000</a> — 6 sty 2018, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-01-06T21:00:51+01:00</updated>
<published>2018-01-06T21:00:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201610#p201610</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201610#p201610"/>
<title type="html"><![CDATA[Re: Obliczanie różnicy zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201610#p201610"><![CDATA[
Pewnie przez domyślną promocję do <strong><em>int</em></strong>.<br /><br />Spróbuj może:[syntax=c]if( (uint8_t)(*ms - last_ms) &gt; 50 )[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 6 sty 2018, o 21:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2018-01-06T20:52:11+01:00</updated>
<published>2018-01-06T20:52:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201609#p201609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201609#p201609"/>
<title type="html"><![CDATA[Re: Obliczanie różnicy zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201609#p201609"><![CDATA[
P. Mirek o tym pisze na przykładzie RC5, i nielogiczne staje się logiczne ale nie wiem dlaczego nie działa mi to w tym przypadku.<br /><br />Dioda mignie kilka razy i koniec. Coś, gdzieś robię źle.<br /><br />Lub źle podszedłem do zagadnienia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11828">jez2000</a> — 6 sty 2018, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-01-06T20:40:22+01:00</updated>
<published>2018-01-06T20:40:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201607#p201607</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201607#p201607"/>
<title type="html"><![CDATA[Re: Obliczanie różnicy zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201607#p201607"><![CDATA[
<div class="quotetitle">jez2000 napisał(a):</div><div class="quotecontent"><br />Problem w tym, że jeżeli zmienna last_ms będzie miała wartość np 255 to nigdy nie spełni się ten warunek.<br /></div><br />A dlaczego nie?<br />Zapewne będzie się to wydawać nieco dziwne i nielogiczne, ale w arytmetyce liczb całkowitych bez znaku (jakimi są między innymi zmienne typu <strong><em>uint8_t</em></strong>) wynikiem odejmowania np. 60 - 255 jest liczba 61.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 6 sty 2018, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2018-01-06T20:30:06+01:00</updated>
<published>2018-01-06T20:30:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201606#p201606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201606#p201606"/>
<title type="html"><![CDATA[Obliczanie różnicy zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19926&amp;p=201606#p201606"><![CDATA[
Cześć.<br /><br />Mam timer który co 10 ms zwiększa zmienną <strong><em>timer_ms</em></strong><br /><br />[syntax=c]ISR( TIMER0_COMP_vect ){<br />timer_ms ++;<br />}[/syntax]<br /><br /><br />Mam również funkcję do której jako argument przekazuję wskaźnik do zmiennej <em><strong>timer_ms</strong></em><br /><br />[syntax=c]uint8_t fun( volatile uint8_t *ms ){<br /><br />static uint8_t last_ms = 0;<br /><br />if( (*ms - last_ms) &gt; 50 ){<br />last_ms = *ms;<br />PORTD ^= (1&lt;&lt;0);<br />}<br /><br />}[/syntax]<br /><br />Funkcja ma zapamiętać ostatnią wartość <strong><em>timer_ms</em></strong>, następnie pobrać wartość zmiennej <strong><em>*ms</em></strong>, obliczyć różnicę i jeżeli jest większa niż <strong>50</strong> wykonać działanie.<br /><br />Problem w tym, że jeżeli zmienna <strong><em>last_ms</em></strong> będzie miała wartość np 255 to nigdy nie spełni się ten warunek.<br /><br />Nie wiem jak do tego podejść, chodzi o to, aby w programie głównym mieć <strong>jedną zmienną timer_ms</strong> z której mogą korzystać różne funkcje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11828">jez2000</a> — 6 sty 2018, o 20:30</p><hr />
]]></content>
</entry>
</feed>