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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-26T16:21:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7554&amp;mode</id>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-06-26T16:21:42+01:00</updated>
<published>2014-06-26T16:21:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85821#p85821</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85821#p85821"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85821#p85821"><![CDATA[
Dzięki za uwagi i pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Z Timerem jak najbardziej słuszna uwaga - też się do nich przekonałem, tutaj poszło tak na szybko z delay.<br /><br />Co do kodu - pracuję nad nim <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=2676">Lex_</a> — 26 cze 2014, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Paul Dirac]]></name></author>
<updated>2014-06-25T22:22:56+01:00</updated>
<published>2014-06-25T22:22:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85788#p85788</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85788#p85788"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85788#p85788"><![CDATA[
widac pan mirek pomaga pełną parą, ale ja się dorzucę i fajnie by było rozbić te blokujące 750ms na jakiś timer, np. co 1ms i tyle. <br />Może to zboczenie, ale widząc kody pana mirka pisane od zera, to tam raczej dilejów nie ma. A ja 1wire pisałem sam od zera, więc podam malutki fragment kodu. <br />taki tam kod:<br />[syntax=c]enum convert_temperature_ds18b20 {ds18b20_start_mes=1,time_on_convert_temperature_ds18b20, ds18b20_read_meas};<br />enum convert_temperature_ds18b20 idx = ds18b20_start_mes;<br /><br />void init_timer0_ctc(void);<br /><br /><br />int main(void)<br />{<br />static uint8_t temperature_sign;<br />static uint8_t temperature_decimal;<br />static uint8_t temperature_comma;<br /><br /><br /><br />init_timer0_ctc();<br /><br />if(init_1wire() == 0)<br />{<br />search_sensors(); //wyswietlenie ile jest widocznych czujnikow na magistrali<br />save_id_all_sensor();<br />}<br />sei();<br />while(1)<br />{<br /><br />if(idx == ds18b20_start_mes &amp;&amp; DS18X20_OK == DS18X20_start_meas(DS18X20_POWER_EXTERN,tab_id_sensor&#91;0&#93;))<br />{<br />idx = time_on_convert_temperature_ds18b20 ;<br />}<br /><br />if(idx == ds18b20_read_meas)<br />{<br />DS18X20_read_meas(tab_id_sensor&#91;0&#93;, &amp;temperature_sign, &amp;temperature_decimal, &amp;temperature_comma);<br />setCurrentFont( &amp;DefaultFontInfo );<br />tft_putint(10,50,temperature_decimal,white, black);<br />idx = ds18b20_start_mes;<br />}<br /><br />}<br />return 0;<br />}<br /><br />void init_timer0_ctc(void)<br />{<br />TCCR0A |= (1&lt;&lt;WGM01); //mode ctc<br />TCCR0B |= (1&lt;&lt;CS01) | (1&lt;&lt;CS00);<br />OCR0A = 173;<br />TIMSK0 |= (1&lt;&lt;OCIE0A);<br />}<br /><br />ISR( TIMER0_COMPA_vect  )<br />{<br />static uint16_t time;<br />if(++time == 750 &amp;&amp; idx == time_on_convert_temperature_ds18b20)<br />{<br />idx = ds18b20_read_meas;<br />time = 0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1035">Paul Dirac</a> — 25 cze 2014, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-25T16:47:37+01:00</updated>
<published>2014-06-25T16:47:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85747#p85747</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85747#p85747"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85747#p85747"><![CDATA[
<div class="quotetitle">Lex_ napisał(a):</div><div class="quotecontent"><br />:D Spoko poradzę sobie  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br /><br />to mi się podoba - więc mała podpowiedź - słowo klucz to STRING, a więc numer DS'a musisz przekopiować jako string.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 cze 2014, o 16:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-06-25T16:42:56+01:00</updated>
<published>2014-06-25T16:42:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85746#p85746</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85746#p85746"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85746#p85746"><![CDATA[
<img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Spoko poradzę sobie  <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=2676">Lex_</a> — 25 cze 2014, o 16:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-25T04:39:35+01:00</updated>
<published>2014-06-25T04:39:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85693#p85693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85693#p85693"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85693#p85693"><![CDATA[
ok tego ze wskaźnikami r i s nie zauważyłem bo to kolejne zresztą coraz większe mega zamieszanie w tym kodzie ...<br /><br />Kłopot polega na tym, że ja tobie nie jestem w stanie napisać kodu ... to musisz zrobić sam, ja mogę tylko cię naprowadzać co robisz ewidentnie źle gdy uda mi się na szybko zobaczyć błędy (dzięki temu jak już sam dojdziesz co masz nie tak - to gwarantuję ci że zapamiętasz to rzeczywiście na zawsze a pewnie i czegoś nowego się nauczysz) ... Dlatego podpowiedziałem wyżej o tych twoich pętlach<br /><br />to teraz kolejna wskazówka, jak masz tą linię:<br /><br />[syntax=c]dat_p=fill_tcp_data(buf,dat_p,r); // r - przekazywanie wskaźnika jako argument funkcji[/syntax]<br /><br />to powiedz mi analizowałeś działanie funkcji fill_tcp_data() ? bo coś mi się mocno wydaje, że nie ... bo gdybyś to zrobił to nigdy nie wpadłbyś na pomysł przesłania tam wskaźnika r, który wskazuje na twoją zmienną jednobajtową p albo q.<br /><br />tymczasem ciało tej funkcji to zaledwie JEDNA linijka .... i powiedz mi co z niej wynika jeśli chodzi o przekazanie wskaźnika jako ostatniego argumentu ?<br /><br />bo na razie to zadziałałeś z nią (tzn z tą funkcją) tak - że jeśli potrzebny jest tam wskaźnik - to dla ciebie nie jest ważne jaki wskaźnik <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ... tylko ważne żeby był jakiś , jakikolwiek, hmmm dowolny wskaźnik ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 cze 2014, o 04:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-06-24T23:18:56+01:00</updated>
<published>2014-06-24T23:18:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85689#p85689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85689#p85689"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85689#p85689"><![CDATA[
Sedno:<br />Nie wiem więc jak poprawnie przekazać te dane do ramki.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />stworzyłeś sobie jakieś 3 zmienne p i q ... i co z tego ? gdzie później z nich korzystasz w kodzie ?<br /></div><br />Być może nie zwrócił pan uwagi, ale 'p' i 'q' nie używam potem, a jedynie wskaźniki, które na te zmienne wskazują i potem są przekazywane w funkcji wysyłającej dane.<br />[syntax=c]dat_p=fill_tcp_data(buf,dat_p,r); // r - przekazywanie wskaźnika jako argument funkcji<br /> <br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&quot;));<br /> <br />dat_p=fill_tcp_data(buf,dat_p,s);  // s - przekazywanie wskaźnika jako argument funkcji[/syntax]<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />po co w ogóle tworzyć jakieś dodatkowe byty w postaci innych tablic skoro można je przekazać wprost z tablicy sensors ?<br /></div><br /><br />Mógłby pan napisać w jaki sposób ?<br />Wprost przypisać wartość i wysłać?<br />Przykład:<br />[syntax=c]p=gSensorIDs&#91;0&#93;&#91;0&#93;;<br />q=gSensorIDs&#91;1&#93;&#91;0&#93;;[/syntax]<br /><br />Rzecz jasna typ 'p' i 'q' do zmiany.<br /><br />Dziękuję za odpowiedź.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2676">Lex_</a> — 24 cze 2014, o 23:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-24T22:53:58+01:00</updated>
<published>2014-06-24T22:53:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85686#p85686</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85686#p85686"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85686#p85686"><![CDATA[
masz pan<br /><br />[syntax=c]char p;[/syntax]<br /><br />więc co to jest p ??? ... to jest zmienna o wielkości jakiej ? .... jednego bajta tak ?<br /><br />no to teraz co robisz w pętli?<br /><br />[syntax=c]for(k=0;k&lt;8;k++) {<br />                p=gSensorIDs&#91;0&#93;&#91;k&#93;;      // &lt;--- PIERWSZY czujnik na 1wire<br /> <br />        }[/syntax]<br /><br />w pierwszym obiegu pętli twoja zmienna p (nie wiedzieć czemu typ char) ... równa się wartości pierwszej liczby z ośmiu, całego numeru czujnika .... np 0xAF<br /><br />drugi obieg pętli, i znowu p= .... i teraz w zmiennej p zamazujesz 0xAF drugą liczbą z ośmiu całego numeru czujnika czyli np 0x2C<br /><br />trzeci obieg pętli ..<br /><br />czwarty ...<br /><br />....<br /><br />ostatni obieg pętli i twoje p = ostatniej wartości niech to będzie np 0xd2<br /><br />więc po za kończeniu pętli masz pan zmienną jednobajtową z wartością ostatniego członu numeru czujnika np 0xd2 ... i co ci z tego przyjdzie - skoro numer zapisany jest aż na OŚMIU bajtach w tablicy sensors ??? <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />ale to nie wszystko .... stworzyłeś sobie jakieś 3 zmienne p i q ... i co z tego ? gdzie później z nich korzystasz w kodzie ? nie zastanowiło cię to ? nigdzie - więc kompilator tak w ogóle to wyżyna ci w pień te dwie pętle z kodu i w ogóle się nie kompilują bo są niepotrzebne - uznaje je za śmieci<br /><br />więc nie ma co zgadywać czy p powinna być tablicą czy nie wiadomo czym bo przede wszystkim to trzeba jakoś to przekazać do bufora ramki UDP<br /><br />a skoro mamy bufor ramki udp to po co w ogóle tworzyć jakieś dodatkowe byty w postaci innych tablic skoro można je przekazać wprost z tablicy sensors ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 cze 2014, o 22:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-06-24T22:06:01+01:00</updated>
<published>2014-06-24T22:06:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85678#p85678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85678#p85678"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85678#p85678"><![CDATA[
Już poprawione u góry. Sorry za nie dopatrzenie.<br /><br />edit: @Mirek36: zmienna 'p' powinna być tablicą ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2676">Lex_</a> — 24 cze 2014, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2014-06-24T22:04:30+01:00</updated>
<published>2014-06-24T22:04:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85675#p85675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85675#p85675"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85675#p85675"><![CDATA[
<div class="quotetitle">Jaglarz napisał(a):</div><div class="quotecontent"><br />Na razie proszę się zastosować do wymagań: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><br /></div><br /><br /><br />Lex_ przeczytaj topic zaproponowany przez <strong><span style="color: #FF00BF">Prosiaczka</span></strong> i popraw swój pierwszy post. Bo bez tych kolorków w ogóle nie widzę co program robi, a wrodzone lenistwo nie pozwala mi przekopiowac tego do notepada++ czy innego ustrojstwa koloryzującego składnie. Jak już pozmieniasz to może ktoś będzie Ci w stanie bardziej pomóc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 24 cze 2014, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-06-24T22:01:06+01:00</updated>
<published>2014-06-24T22:01:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85674#p85674</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85674#p85674"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85674#p85674"><![CDATA[
Wg mego mniemania puszczam w ruch pętlę, która szuka 8 czujników linii.<br />Może to niepotrzebne wyprzedzenie, bo mam tylko dwa, ale w przyszłości miałbym większe możliwości.<br /><br />No chyba że się mylę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />edit: sorry - zapomniałem o tym syntax:<br /><br />[syntax=c]//operacje w warunku wykonują się po otwarciu w przeglądarce karty 'imie termometru'<br />if (strncmp(&quot;/imie_termometru&quot;,(char *)&amp;(buf&#91;dat_p+4&#93;),15)==0){<br />dat_p=http200ok();<br /><br />      //operacje na linii 1wire - dane czujnika<br />      uint8_t k;<br />      char p; //surowy odczyt rom_code<br />      char q;<br /><br />      /* wskaźniki, które wskazują na nazwy czujników a potem są przekazywane<br />       dla funkcji wysyłającej te dane */<br />      char *r;<br />      char *s;<br /><br />      r = &amp;p;<br />      s = &amp;q;<br />        for(k=0;k&lt;8;k++) {<br />                p=gSensorIDs&#91;0&#93;&#91;k&#93;;      // &lt;--- PIERWSZY czujnik na 1wire<br /><br />        }<br /><br /><br />        for(k=0;k&lt;8;k++) {<br />                q=gSensorIDs&#91;1&#93;&#91;k&#93;;      // &lt;--- DRUGI czujnik na 1wire<br /><br />        }<br /><br />dat_p=fill_tcp_data(buf,dat_p,r); // r - przekazywanie wskaźnika jako argument funkcji<br /><br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&quot;));<br /><br /><br />dat_p=fill_tcp_data(buf,dat_p,s);  // s - przekazywanie wskaźnika jako argument funkcji<br /><br />goto SENDTCP;<br /><br /><br />}[/syntax]<br /><br />[syntax=c]else if (strncmp(&quot;/temperatura&quot;,(char *)&amp;(buf&#91;dat_p+4&#93;),7)==0){<br /><br />   DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL );<br /><br />      /* czekamy 750ms na dokonanie konwersji przez podłączone czujniki */<br />   _delay_ms(750);<br /><br />   if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) )<br />      {<br />      itoa(cel,bufor,16);<br /><br />      dat_p=http200ok();<br />      dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;temperatura: &quot;));<br />      dat_p=fill_tcp_data(buf,dat_p,bufor);;<br />      }<br />      else {<br />         dat_p=http200ok();<br />               dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;BRAK CZUJNIKA &quot;));<br />                  <br />      }<br /><br /><br />   if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) )<br />            {<br />            itoa(cel,bufor,16); // konwersja liczby stałej na łańcuch znaków<br /><br />            dat_p=http200ok();<br />            dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;temperatura czujnika nr 2: &quot;));<br />            dat_p=fill_tcp_data(buf,dat_p,bufor);;<br /><br />            goto SENDTCP;<br /><br />            }<br />            else {<br />               dat_p=http200ok();<br />                     dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;BRAK CZUJNIKA &quot;));<br />                        <br /><br />                     goto SENDTCP;<br />            }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2676">Lex_</a> — 24 cze 2014, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2014-06-24T21:59:12+01:00</updated>
<published>2014-06-24T21:59:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85673#p85673</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85673#p85673"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85673#p85673"><![CDATA[
Na razie proszę się zastosować do wymagań: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 24 cze 2014, o 21:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-24T21:56:26+01:00</updated>
<published>2014-06-24T21:56:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85672#p85672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85672#p85672"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85672#p85672"><![CDATA[
spróbuj sam przeanalizować co ty tutaj wyprawiasz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]for(k=0;k&lt;8;k++) {<br />                p=gSensorIDs&#91;0&#93;&#91;k&#93;;      // &lt;--- PIERWSZY czujnik na 1wire<br /><br />        }[/syntax]<br /><br />i opisz to - ale dokładnie krok po kroku<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 cze 2014, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-06-24T22:15:09+01:00</updated>
<published>2014-06-24T21:48:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85671#p85671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85671#p85671"/>
<title type="html"><![CDATA[Czujnik DS18B20 - przekazanie parametru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7554&amp;p=85671#p85671"><![CDATA[
Witam Mistrzów<br /><br />Siedzę przy programie, który oparty jest na atmedze 32 i magistrali 1Wire.<br />Chciałbym za pomocą znanych już dwóch czujników temperatury DS18B20 mierzyć temperaturę i wysłać ją oraz ich ROM_CODE  na stronę internetową.<br />Napisałem kod, wgrałem w mikro kontroler i niestety wartość temperatury na stronie się nie pokazuje i ROM_CODE też. Być może pomyliłem się w typach używanych zmiennych i z stąd zonk. Nie proszę o gotowe rozwiązanie tylko o wskazówki co poprawić bo kod kompiluje się bez błędów i warning'ów.<br />W skrócie zrobiłem to tak (używam biblioteki pana Mirka dla DS18B20):<br /><br />[syntax=c]//operacje w warunku wykonują się po otwarciu w przeglądarce karty 'imie termometru'<br />if (strncmp(&quot;/imie_termometru&quot;,(char *)&amp;(buf&#91;dat_p+4&#93;),15)==0){<br />dat_p=http200ok();<br /><br />//operacje na linii 1wire - dane czujnika<br />uint8_t k;<br />char p; //surowy odczyt rom_code<br />char q;<br /><br />/* wskaźniki, które wskazują na nazwy czujników a potem są przekazywane<br /> dla funkcji wysyłającej te dane */<br />char *r;<br />char *s;<br /><br />r = &amp;p;<br />s = &amp;q;<br />        for(k=0;k&lt;8;k++) {<br />                p=gSensorIDs&#91;0&#93;&#91;k&#93;;      // &lt;--- PIERWSZY czujnik na 1wire<br /><br />        }<br /><br /><br />        for(k=0;k&lt;8;k++) {<br />                q=gSensorIDs&#91;1&#93;&#91;k&#93;;      // &lt;--- DRUGI czujnik na 1wire<br /><br />        }<br /><br />dat_p=fill_tcp_data(buf,dat_p,r); // r - przekazywanie wskaźnika jako argument funkcji<br /><br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&quot;));<br /><br /><br />dat_p=fill_tcp_data(buf,dat_p,s);  // s - przekazywanie wskaźnika jako argument funkcji<br /><br />goto SENDTCP;<br /><br /><br />}[/syntax] <br /><br />Tutaj listing ze sprawdzeniem poprawności odczytu temperatury dla czujnika 1, 2 i jej wysłanie:<br />[syntax=c]else if (strncmp(&quot;/temperatura&quot;,(char *)&amp;(buf&#91;dat_p+4&#93;),7)==0){<br /><br />DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL );<br /><br />/* czekamy 750ms na dokonanie konwersji przez podłączone czujniki */<br />_delay_ms(750);<br /><br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) )<br />{<br />itoa(cel,bufor,16);<br /><br />dat_p=http200ok();<br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;temperatura: &quot;));<br />dat_p=fill_tcp_data(buf,dat_p,bufor);;<br />}<br />else {<br />dat_p=http200ok();<br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;BRAK CZUJNIKA &quot;));<br /><br />}<br /><br /><br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) )<br />{<br />itoa(cel,bufor,16); // konwersja liczby stałej na łańcuch znaków<br /><br />dat_p=http200ok();<br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;temperatura czujnika nr 2: &quot;));<br />dat_p=fill_tcp_data(buf,dat_p,bufor);;<br /><br />goto SENDTCP;<br /><br />}<br />else {<br />dat_p=http200ok();<br />dat_p=fill_tcp_data_p(buf,dat_p,PSTR(&quot;BRAK CZUJNIKA &quot;));<br /><br /><br />goto SENDTCP;<br />}<br />}[/syntax] <br /><br />Za każdą pomoc będę bardzo wdzięczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2676">Lex_</a> — 24 cze 2014, o 21:48</p><hr />
]]></content>
</entry>
</feed>