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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-27T23:38:14+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5708&amp;mode</id>
<entry>
<author><name><![CDATA[pakos]]></name></author>
<updated>2014-01-27T23:38:14+01:00</updated>
<published>2014-01-27T23:38:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67013#p67013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67013#p67013"/>
<title type="html"><![CDATA[Re: Problem z liczbą typu long - przyjmowanie dziwnych warto]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67013#p67013"><![CDATA[
W tak głęboki &quot;busz&quot; nie zapuszczałem się jeszcze, a widzę, że WARTO! Problem rozwiązany za pierwszym podejściem.<br /><br />Wielkie dzięki za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2430">pakos</a> — 27 sty 2014, o 23:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-01-27T23:23:33+01:00</updated>
<published>2014-01-27T23:23:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67011#p67011</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67011#p67011"/>
<title type="html"><![CDATA[Re: Problem z liczbą typu long - przyjmowanie dziwnych warto]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67011#p67011"><![CDATA[
<div class="quotetitle">pakos napisał(a):</div><div class="quotecontent"><br />Może Wy potraficie mi powiedzieć, o co w tym wszystkim chodzi !<br /></div><br /><br />czasem warto poczytać i na stronie atnela <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <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 /><br />to może ci się przydać <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=54">mirekk36</a> — 27 sty 2014, o 23:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pakos]]></name></author>
<updated>2014-01-27T23:12:04+01:00</updated>
<published>2014-01-27T23:12:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67005#p67005</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67005#p67005"/>
<title type="html"><![CDATA[Problem z liczbą typu long - przyjmowanie dziwnych wartości]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5708&amp;p=67005#p67005"><![CDATA[
Witam,<br /><br />na wstępie piszę, że niestety nie mogę udostępnić kodu, ponieważ nie chciałbym żeby posądzono mnie o plagiat (kod programu przeznaczony jest na pracę inżynierską). <br /><br />Mam problem z dziwnie zachowującą się zmienną typu long. Przechowuję w niej ręcznie stworzoną liczbę w taki sposób, że na wyświetlaczu LCD wyświetlam liczbę jako pojedyncze cyfry. Przechodząc po menu prawo/lewo zmieniam cyfrę, a przechodząc góra/dół zwiększam/zmniejszam wartość cyfry. Na końcu z pojedynczych cyfr tworzę jedną liczbę za pomocą takiego kodu:<br /><br />[syntax=c]if(digit1 == 0)<br />reference_pressure = 10000 * digit2 + 1000 * digit3 + 100 * digit4 + 10 * digit5 + digit6;<br /><br />if(digit1 &gt; 0)<br />reference_pressure = 100000 * digit1 + 10000 * digit2 + 1000 * digit3 + 100 * digit4 + 10 * digit5 + digit6;[/syntax]<br /><br />gdzie digit1 to najważniejsza część liczby (dziesiątki tysięcy), a digit6 najmniej ważna część (jedności).<br /><br />Następnie zmienną reference_pressure formatuję w taki sposób, że dziele ją przez 100 (aby zmienić skalę), a następnie robię modulo 100 z reference_pressure (wynik modulo to wartość po przecinku).<br /><br />[syntax=c]lcd_int(reference_pressure / 100);<br />lcd_str(&quot;,&quot;);<br />if(fmod(reference_pressure, 100) &lt; 10)<br />{<br />lcd_str(&quot;0&quot;);<br />lcd_int(fmod(reference_pressure, 100));<br />}<br />else<br />        lcd_int(fmod(reference_pressure, 100));[/syntax]<br /><br />Na LCD dla wartości digit1 &gt; 0 wyświetla bardzo dobrze (przynajmniej dla wymaganego przeze mnie zakresu), jednak gdy digit1 = 0, a digit2 &gt; 0 to zaczynają się wyświetlać kompletne bzdury. Np. dla 99900 wyświetla -311,0-72, a dla 91300 wyświetla +257,89. Wygląda to tak, jakbym wykraczał poza zakres liczby. Ale z tego co się orientuję typ long jest 32 bitowy, więc nie powinno być problemu.<br /><br />Może Wy potraficie mi powiedzieć, o co w tym wszystkim chodzi ! <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=2430">pakos</a> — 27 sty 2014, o 23:12</p><hr />
]]></content>
</entry>
</feed>