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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-15T19:08:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13886&amp;mode</id>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-15T19:08:19+01:00</updated>
<published>2015-12-15T19:08:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148131#p148131</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148131#p148131"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148131#p148131"><![CDATA[
<div class="quotetitle">QuadMan napisał(a):</div><div class="quotecontent"><br />Myślę, że teraz wszystko jest jasne.<br /></div><br />Witam ponownie!<br />Bardzo dziękuję za pomoc! Klikam &quot;pomógł&quot; - szybko i konkretnie! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />Niech obrazki zastąpią słowa i wyrażą moją wielką radość ...<br /><a href="https://obrazkiforum.atnel.pl/9310/cb0a0ed17ec3547632da98514eaa9a7b.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/cb0a0ed17ec3547632da98514eaa9a7b.png" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/9310/1b169e2b27072fca1b9c0a53dec15692.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/1b169e2b27072fca1b9c0a53dec15692.png" alt="Obrazek" /></a><br />Pozdrawiam serdecznie<br />avrfun<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 15 gru 2015, o 19:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-15T15:25:43+01:00</updated>
<published>2015-12-15T15:25:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148099#p148099</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148099#p148099"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148099#p148099"><![CDATA[
<div class="quotetitle">QuadMan napisał(a):</div><div class="quotecontent"><br />Myślę, że teraz wszystko jest jasne.<br /></div><br />Wielkie dzięki. Jak tylko dotrę do domu i odpalę kod napiszę natychmiast o efektach.<br />Pozdrawiam serdecznie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 15 gru 2015, o 15:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2015-12-15T14:45:36+01:00</updated>
<published>2015-12-15T14:45:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148096#p148096</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148096#p148096"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148096#p148096"><![CDATA[
Witam ponownie.<br /><br />Dla godzin masz kod powyżej - operacje dodawania godziny wykonujesz na zmiennych uint8_t, wynik itoa() jako string ( 2 znaki + 0 ) wyświetlasz na terminalu za pomocą uart_puts();<br /><br />Dla temperatury masz 2 funkcje: tą &quot;sklejającą&quot; stringa i pomocniczą, zerującą bufor:<br /><br />[syntax=c]void string_glue(uint8_t subzero, uint8_t cel, uint8_t fract_bit, char* out_str)<br />{<br /><br />char itoa_buff &#91;4&#93;;// Bufor dla itoa<br /><br />    clr_str(temp_string);// Wyzerowac przek kolejnymi konwersjami<br />    if(subzero) strcat(temp_string, '-');<br />    else strcat(temp_string, ' '); // Znak -, albo spacja na poczatku <br />    <br />    itoa( cel, itoa_buff, 10);// Zamien cel na ascii <br />    strcat( temp_string, itoa_buff);// Dolacz do bufora wyjsciowego<br />    <br />    strcat( temp_string, '.');// Przecinek do bufora<br />    <br />    itoa(fract_bit, itoa_buff, 10);<br />    strcat(temp_string, itoa_buff);// W buforze caly string<br />}<br /><br />void clr_str(char* str)<br />{<br />uint8_t k = strlen(str);<br /><br />for( uint32_t i=0; i&lt;k; i++)<br />{<br />*(str + i)=0;<br />}<br />}[/syntax] <br /><br />Wywołanie:<br /><br />[syntax=c]char temp_string &#91;8&#93;;<br /><br /><br /><br /><br />            string_temp_glue(subzero, cel, fract_bit, temp_string);<br />            uart_puts(temp_string);[/syntax]<br /><br />Myślę, że teraz wszystko jest jasne.<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 15 gru 2015, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-15T14:07:32+01:00</updated>
<published>2015-12-15T14:07:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148095#p148095</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148095#p148095"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148095#p148095"><![CDATA[
Witam!<br />Dziękuję. W chwili obecnej nie mam dostępu do kodu, ale widząc wielką życzliwość i zainteresowanie napiszę co mam i co chcę uzyskać. Po parsowaniu danych z GPS uzyskuję stringi hh, gg, ss i mogę je bez problemu wyświetlić zarówno na LCD: lcd_str(hh) lub wysłać do terminala uart_puts(hh) itd. Zmienne godzina, godzina+1 minuta, sekunda wyświetlam na LCD za pomocą funkcji lcd_int(godzina). Schody zaczęły się gdy dostrzegłem w terminalu, że hh różni się od rzeczywistej o godzinę i zacząłem na razie bez powodzenia kombinować jak wyświetlić &quot;hh+1&quot;. Podobnie jest z temperaturą. Tu niestety jeszcze nic nie zdziałałem. Mam dane typu uint8_t np cel. Rozumiem, że należy ją przekonwertować na char za pomocą itoa i będzie ok? Przpraszam, ale nie mam dostępu do eclipse.Czy tak będzie dobrze? <br />[syntax=c]char temperatura<br />char temp_buf&#91;100&#93;<br />temperatura = itoa(cel, temp_buf,10)<br />uart_puts(temperatura)[/syntax]<br />Podobnie można chyba przekonwertować uint8_t godzina na char godzina za pomocą funkcji itoa?<br />Pozdrawiam<br /><br />P.S.<br /><div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />A to Ci w ogóle coś sensownego wyświetla w terminalu? A kompilator nie krzyczy o niezgodność typów?<br /></div><br />Nie wyświetla nic, a w stosownej linii w eclipse jest żółty trójkącik niezgodności typów niestety<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 15 gru 2015, o 14:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2015-12-15T13:30:13+01:00</updated>
<published>2015-12-15T13:30:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148091#p148091</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148091#p148091"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148091#p148091"><![CDATA[
W nawiązaniu do 2 postów Kolegów powyżej, Kolego <strong>avrfun</strong> masz zakomentowane itoa(),  dlaczego? Przecież chcesz wyświetlać string, bo jeśli liczbę to musisz użyć uart_putint(). A.. już widzę, to będzie tak:[syntax=c]godzina = atoi(hh);<br />            godzina = godzina + 1;<br />            if(24 == godzina)<br />            {<br />              godzina = 0;<br />               dzien = dzien + 1;<br />             }<br />             if (25 == godzina) godzina = 1;<br />              //  if (26 == godzina) godzina = 2;  - TO CHYBA ZBEDNE?<br />            //itoa(godzina,hh,10);<br />            minuta = atoi(mm);<br />            sekunda = atoi(ss);<br /><br />            rok = atoi(YY);<br />            rok = rok + 2000;<br />            miesiac = atoi(MM);<br /><br />            itoa(godzina, hh,10);<br /><br />            uart_putc(hh);[/syntax]<br />Kolego <strong>tomson5</strong>, można tak jak piszesz, ale albo zamienisz te zmienne cel i fract_bit na ascii, albo użyjesz uart_putint().<br />Ja osobiście nie lubię takich kombinacji, wolę najpierw przygotować sobie odpowiednio sformatowanego stringa w tablicy i &quot;jednym ruchem&quot; go wyświetlić. To moje podejście wynika głównie z tego, że ja często coś piszę pod FreeRTOS-em i tak jest mi łatwiej chronić dostęp do zasobów - w tym wypadku do sprzętu UART-a.<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 15 gru 2015, o 13:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2015-12-15T10:17:24+01:00</updated>
<published>2015-12-15T10:17:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148082#p148082</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148082#p148082"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148082#p148082"><![CDATA[
Można ale nie trzeba zamieniać i łączyć. <br />Wyślij cel, <br />Wyślij znak &quot;.&quot; <br />Wyślij cel_fract_bit<br />Wyślij znak entera i nowej linni<br />Przepraszam że tak bez kodu ale z pamięci mogę byków narobić a nie mam nic pod ręką. Po południu gdy nikt nie pomoże to podam moją myśl ubraną w kod.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 15 gru 2015, o 10:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2015-12-15T07:50:12+01:00</updated>
<published>2015-12-15T07:50:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148066#p148066</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148066#p148066"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148066#p148066"><![CDATA[
<div class="quotetitle">avrfun napisał(a):</div><div class="quotecontent"><br />Witam!<br />Bardzo dziękuję, będę próbował. Jeszcze krótkie pytanie (korzystam z uprzejmości). Wyświetlam w terminalu godzinę po parsowaniu danych z GPS - do rtc zapisuje się &quot;godzina=godzina+1&quot;, a w terminalu wyświetla się &quot;godzina&quot; gdzie robię błąd?<br />[syntax=c]godzina = atoi(hh); //tu zamieniasz string na liczbę<br />    dzien = atoi(DD);<br />    godzina = godzina + 1;<br />    if (24 == godzina) godzina = 0, dzien = dzien + 1;<br />    if (25 == godzina) godzina = 1;<br />    if (26 == godzina) godzina = 2;<br />    //itoa(godzina,hh,10);<br />    minuta = atoi(mm);<br />    sekunda = atoi(ss);<br /><br />    rok = atoi(YY);<br />    rok = rok + 2000;<br />    miesiac = atoi(MM);<br /><br />    uart_putc(godzina);  // tu chcesz wysłać znak? A podajesz liczbę[/syntax]<br />Pozdrawiam<br /></div><br />A to Ci w ogóle coś sensownego wyświetla w terminalu? A kompilator nie krzyczy o niezgodność typów?<br />Chodzi mi o miejsca w kodzie gdzie dodałem komentarze<br />Bo może wysyłasz w dwóch miejscach i dlatego coś przed zwiększeniem o 1 wyświetla?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 15 gru 2015, o 07:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-14T22:59:39+01:00</updated>
<published>2015-12-14T22:59:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148039#p148039</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148039#p148039"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148039#p148039"><![CDATA[
<div class="quotetitle">QuadMan napisał(a):</div><div class="quotecontent"><br />Witam.<br /><br />Po prostu zamień cel i cel_fract_bits na asci za pomocą funkcji itoa(), sprawdź subzero i jeśli wynik jest ujemny to zrób z niego '-' z całość sklej np. za pomocą np. strcat() i takiego stringa możesz już wyświetlić za pomocą uatr_puts(). Nie mam w tej chwili czasu, by napisać kod, ale myślę, że dasz radę.<br /><br />Pozdrawiam, QuadMan<br /></div><br /><br />Witam!<br />Bardzo dziękuję, będę próbował. Jeszcze krótkie pytanie (korzystam z uprzejmości). Wyświetlam w terminalu godzinę po parsowaniu danych z GPS - do rtc zapisuje się &quot;godzina=godzina+1&quot;, a w terminalu wyświetla się &quot;godzina&quot; gdzie robię błąd?<br />[syntax=c]char hh&#91;3&#93;, mm&#91;3&#93;, ss&#91;3&#93;;<br />char DD&#91;3&#93;, MM&#91;3&#93;, YY&#91;3&#93;;<br />static char dane_godziny&#91;6&#93;;<br />static char dane_daty&#91;6&#93;;<br /><br />for(uint8_t i=0;i&lt;6;i++){<br />    dane_godziny&#91;i&#93; = *(time++);<br />    }<br /><br />    hh&#91;0&#93; = dane_godziny&#91;0&#93;;<br />    hh&#91;1&#93; = dane_godziny&#91;1&#93;;<br />    hh&#91;2&#93; = 0;[/syntax]<br />[syntax=c]godzina = atoi(hh);<br />    dzien = atoi(DD);<br />    godzina = godzina + 1;<br />    if (24 == godzina) godzina = 0, dzien = dzien + 1;<br />    if (25 == godzina) godzina = 1;<br />    if (26 == godzina) godzina = 2;<br />    //itoa(godzina,hh,10);<br />    minuta = atoi(mm);<br />    sekunda = atoi(ss);<br /><br />    rok = atoi(YY);<br />    rok = rok + 2000;<br />    miesiac = atoi(MM);<br /><br />    uart_putc(godzina);[/syntax]<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 14 gru 2015, o 22:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2015-12-14T22:49:36+01:00</updated>
<published>2015-12-14T22:49:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148033#p148033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148033#p148033"/>
<title type="html"><![CDATA[Re: DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148033#p148033"><![CDATA[
Witam.<br /><br />Po prostu zamień cel i cel_fract_bits na asci za pomocą funkcji itoa(), sprawdź subzero i jeśli wynik jest ujemny to zrób z niego '-' z całość sklej np. za pomocą np. strcat() i takiego stringa możesz już wyświetlić za pomocą uatr_puts(). Nie mam w tej chwili czasu, by napisać kod, ale myślę, że dasz radę.<br /><br />Pozdrawiam, QuadMan<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 14 gru 2015, o 22:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-14T22:29:10+01:00</updated>
<published>2015-12-14T22:29:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148027#p148027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148027#p148027"/>
<title type="html"><![CDATA[DS18B20 - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13886&amp;p=148027#p148027"><![CDATA[
Witam!<br />W jaki sposób przesłać do terminala wynik pomiaru temperatury z DS18B20<br />[syntax=c]if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;x&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(10);[/syntax]<br />tak aby w fukcji display_temp znalazło się polecenie uart_puts() (biblioteka MK_UART z GB).<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 14 gru 2015, o 22:29</p><hr />
]]></content>
</entry>
</feed>