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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-06-06T22:31:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11931&amp;mode</id>
<entry>
<author><name><![CDATA[tomek]]></name></author>
<updated>2015-06-06T22:31:07+01:00</updated>
<published>2015-06-06T22:31:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131110#p131110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131110#p131110"/>
<title type="html"><![CDATA[Re: problem z wyświetlaniem dużych wartości liczb na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131110#p131110"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />funkcję dobrze przerobiłeś - ale pewnie, coś źle kombinujesz z jej wywołaniem- czyli nie pokazałeś najważniejszego co robisz w kodzie - jak przekazujesz argument. No i pytanie - czy zmieniłeś też nagłówek funkcji w pliku *.h ?<br /></div><br /><br />aaaaa rzeczywiście ...  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  nie podałem najważniejszego czyli jak odpalam lont  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <br />nic bardzo ambitnego bo tylko próby na razie robię żeby sobie utrwalić materiał i wyrobić nawyki :<br /><br />uint32_t val = 0xFFFFFFFF ;<br />lcd_int(val);<br /><br /><br />w *.h  oczywiście zmieniłem nagłówek bo pierwsze co, to kompilator skoczył mi do gardła :<br /><br />void lcd_int(uint32_t val);<br /><br /><br />Konwersja jest robiona przez utoa a nie zmieniłem na razie nazwy funkcji i dalej jest lcd_int() ale to tylko kosmetyka więc tym się nie zajmujemy .....<br />natomiast serio nie wiem czemu nie działa to prawidłowo i reszta jest  &quot;obcięta&quot; .....<br /><br /><br />Jak dobrze opanuję wyświetlanie będzie się łatwiej przebijać bo będę mógł sobie kontrolnie wyświetlać na LCD stany czy wartości tych komórek jakie mnie interesują a tak jeszcze trochę się krece w kółko ....<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Funkcja utoa() konwertuje liczbę 16-bitową bez znaku. Dla liczb 32-bitowych powinieneś użyć funkcji ltoa() lub ultoa() <br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7663.html#p86608" >topic7663.html#p86608</a><!-- l --><br /></div><br /><br /><br />czekaj czekaj ,,,, teraz mnie zastrzeliłeś ....  muszę zajrzeć .... może i masz rację  .... chwila ......<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br /><div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Funkcja utoa() konwertuje liczbę 16-bitową bez znaku. Dla liczb 32-bitowych powinieneś użyć funkcji ltoa() lub ultoa() <br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7663.html#p86608" >topic7663.html#p86608</a><!-- l --><br /></div><br /><br /><br />Jacek jesteś wielki  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  a ja dupa .... rzeczywiście źle wpisałem funkcję ... chociaż dobrze zadeklarowałem liczbę .... <br />WYŚWIETLANIE DZIAŁA OK !   Daję  &quot;pomógł&quot;  ....   <br /><br />teraz jeszcze muszę wykombinować jak to zrobić żeby liczba była wyrównywana do prawej krawędzi bo trochę głupio wygląda po lewej stronie  ,,,,<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=178">tomek</a> — 6 cze 2015, o 22:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-06-06T22:02:00+01:00</updated>
<published>2015-06-06T22:02:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131107#p131107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131107#p131107"/>
<title type="html"><![CDATA[Re: problem z wyświetlaniem dużych wartości liczb na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131107#p131107"><![CDATA[
Funkcja utoa() konwertuje liczbę 16-bitową bez znaku. Dla liczb 32-bitowych powinieneś użyć funkcji ltoa() lub ultoa() <br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7663.html#p86608" >topic7663.html#p86608</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 6 cze 2015, o 22:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-06-06T21:57:13+01:00</updated>
<published>2015-06-06T21:57:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131106#p131106</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131106#p131106"/>
<title type="html"><![CDATA[Re: problem z wyświetlaniem dużych wartości liczb na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131106#p131106"><![CDATA[
funkcję dobrze przerobiłeś - ale pewnie, coś źle kombinujesz z jej wywołaniem- czyli nie pokazałeś najważniejszego co robisz w kodzie - jak przekazujesz argument. No i pytanie - czy zmieniłeś też nagłówek funkcji w pliku *.h ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2015, o 21:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomek]]></name></author>
<updated>2015-06-06T21:47:54+01:00</updated>
<published>2015-06-06T21:47:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131105#p131105</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131105#p131105"/>
<title type="html"><![CDATA[problem z wyświetlaniem dużych wartości liczb na LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11931&amp;p=131105#p131105"><![CDATA[
Wydawało mi się że z grubsza kumam mechanizm wyświetlania informacji na LCD przy wykorzystaniu bibliotek z bluebooka, ale jednak dupa ze mnie .... <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />Potrzebuję wyświetlać na LCD wartości dziesiętne rzędu 50000000, trzeba więc zastosować 32 bitowe liczby binarne. <br />Zmodyfikowałem lekko bibliotekę lcd44780.c która wykorzystuje gotową funkcję z biblioteki stdlib.h i zastąpiłem itoa() przez utoa(). <br />Kompilator kod skompilował ale niestety zonk jest ....<br />Po wgraniu do flasha okazuje się że max wartość jaka jest wyświetlana na LCD to odpowiednik dziesiętny wartości 0xFFFF czyli 65535.<br />Szczerze mówiąc nie bardzo mogę znaleźć punkt zaczepienia ... więc proszę o pomoc i wyjaśnienie czemu to nie działa jak powinno ...<br />Poniżej wstawiam fragmenty kodu które biorą udział w kompilacji ....<br /><br />[syntax=c]uint32_t val = 0xFFFFFFFF ;  // do wyświetlenia dziesiętnie 4294967295<br /><br /><br />============================================================<br /><br />//----------------------------------------------------------------------------------------<br />//<br />// Wyświetla liczbę dziesiętną na wyświetlaczu LCD - funkcja przelicza utoa()<br />//<br />//----------------------------------------------------------------------------------------<br />void lcd_int(uint32_t val)<br />{<br /> char bufor&#91;33&#93;;<br />lcd_str( utoa(val, bufor, 10) );<br />}<br /><br /><br />====================================================================<br /><br />//----------------------------------------------------------------------------------------<br />//<br />// Wysłanie stringa do wyświetlacza LCD z pamięci RAM<br />//<br />//----------------------------------------------------------------------------------------<br />void lcd_str(char * str)<br />{<br />register char znak;<br />while ( (znak=*(str++)) )<br />lcd_write_data( ( znak&gt;=0x80 &amp;&amp; znak&lt;=0x87 ) ? (znak &amp; 0x07) : znak);<br />}<br /><br /><br />void lcd_write_data(uint8_t data)<br />{<br />SET_RS;<br />_lcd_write_byte(data);<br />}<br /><br />==============================================================================<br /><br />//----------------------------------------------------------------------------------------<br />//<br />// Zapis bajtu do wyświetlacza LCD<br />//<br />//----------------------------------------------------------------------------------------<br />void _lcd_write_byte(unsigned char _data)<br />{<br />// Ustawienie pinów portu LCD D4..D7 jako wyjścia<br />data_dir_out();<br /><br />#if USE_RW == 1<br />CLR_RW;<br />#endif<br /><br />SET_E;<br />lcd_sendHalf(_data &gt;&gt; 4);// wysłanie starszej części bajtu danych D7..D4<br />CLR_E;<br /><br />SET_E;<br />lcd_sendHalf(_data);// wysłanie młodszej części bajtu danych D3..D0<br />CLR_E;<br /><br />#if USE_RW == 1<br />while( (check_BF() &amp; (1&lt;&lt;7)) );<br />#else<br />_delay_us(120);<br />#endif<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=178">tomek</a> — 6 cze 2015, o 21:47</p><hr />
]]></content>
</entry>
</feed>