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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-06-20T09:37:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19232&amp;mode</id>
<entry>
<author><name><![CDATA[fenix2]]></name></author>
<updated>2018-06-20T09:37:23+01:00</updated>
<published>2018-06-20T09:37:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209110#p209110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209110#p209110"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209110#p209110"><![CDATA[
Wątek jest z  20 września 2017. <br />OK, założyłem nowy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19176">fenix2</a> — 20 cze 2018, o 09:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2018-06-20T09:18:06+01:00</updated>
<published>2018-06-20T09:18:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209108#p209108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209108#p209108"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209108#p209108"><![CDATA[
<div class="quotetitle">fenix2 napisał(a):</div><div class="quotecontent"><br />Witam,<br /><br />używam bibliotek z BB i mam problem z odczytem temperatury z DS18B20 w trybie PARASITE.<br />W trybie NORMAL odczyt jest. <br />Zmieniam tylko DS18X20_start_meas (DS18X20_POWER_EXTERN, NULL); na<br />DS18X20_start_meas (DS18X20_POWER_PARASITE, NULL);<br />Czy jeszcze coś więcej trzeba zmienić? Oczywiście fizyczne podłączenie jest przez opornik 2.2k.<br />Drugie pytanie jeśli użyje tylko jednego czujnika i funkcji:<br />DS18X20_read_meas_single(familycode, &amp;subzero, &amp;cel, &amp;cel_frac_bits);<br />Co wstawić pod zmienną &quot;familycode&quot;?<br /><br /><br />Pozdrawiam.<br /></div><br /><br />chcesz uzyskać pomoc to załóż osobny wątek i nie odkopuj jakiś staroci sprzed tysięcy lat <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=2500">Nefarious19</a> — 20 cze 2018, o 09:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fenix2]]></name></author>
<updated>2018-06-20T08:43:04+01:00</updated>
<published>2018-06-20T08:43:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209106#p209106</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209106#p209106"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=209106#p209106"><![CDATA[
Witam,<br /><br />używam bibliotek z BB i mam problem z odczytem temperatury z DS18B20 w trybie PARASITE.<br />W trybie NORMAL odczyt jest. <br />Zmieniam tylko DS18X20_start_meas (DS18X20_POWER_EXTERN, NULL); na<br />DS18X20_start_meas (DS18X20_POWER_PARASITE, NULL);<br />Czy jeszcze coś więcej trzeba zmienić? Oczywiście fizyczne podłączenie jest przez opornik 2.2k.<br />Drugie pytanie jeśli użyje tylko jednego czujnika i funkcji:<br />DS18X20_read_meas_single(familycode, &amp;subzero, &amp;cel, &amp;cel_frac_bits);<br />Co wstawić pod zmienną &quot;familycode&quot;?<br /><br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19176">fenix2</a> — 20 cze 2018, o 08:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-09-20T15:45:34+01:00</updated>
<published>2017-09-20T15:45:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195494#p195494</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195494#p195494"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195494#p195494"><![CDATA[
No widzisz? Cały myk polega na tym, że w przerwaniu tylko zapalasz odpowiednie segmenty i wychodzisz z niego. Do czasu następnego przerwania te segmenty cały czas świecą. W kolejnym przerwaniu zapalane są następne i tak w kółko.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 20 wrz 2017, o 15:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[malarz87]]></name></author>
<updated>2017-09-20T14:48:21+01:00</updated>
<published>2017-09-20T14:48:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195490#p195490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195490#p195490"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195490#p195490"><![CDATA[
Po przeniesieniu zmiany cyfry do przerwania, wyświetlacz przestał migotać, czyli działa poprawnie.<br />Wielkie dzięki! <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=2362">malarz87</a> — 20 wrz 2017, o 14:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[malarz87]]></name></author>
<updated>2017-09-20T12:08:11+01:00</updated>
<published>2017-09-20T12:08:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195482#p195482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195482#p195482"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195482#p195482"><![CDATA[
Tak , odczyt działa. Dzięki za pomoc. Wieczorem po pracy zmienię to i dam znać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2362">malarz87</a> — 20 wrz 2017, o 12:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[skalarro]]></name></author>
<updated>2017-09-20T07:50:54+01:00</updated>
<published>2017-09-20T07:50:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195468#p195468</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195468#p195468"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195468#p195468"><![CDATA[
<div class="quotetitle">malarz87 napisał(a):</div><div class="quotecontent"><br />Przecież będzie działało z pełną prędkością procesora,<br /></div><br /><br />Niestety masz rację tylko po części. Przełączanie będzie się wykonywało z pełną prędkością ale tylko wtedy, gdy będzie wykonywane w głównej pętli, a procesor nic poza tym nie będzie miał do roboty. Wystarczy głupie odczytanie czujnika temperatury i zaczynają się schody, których nie potrafisz obejść. A pomyśl teraz jakbyś miał obsłużyć ze 20 czujników, wyświetlacz TFT i jeszcze np kartę SD. i co? i klapa!!!<br /><br />Przerwanie zapewnia, że przełączanie się wykona poza kolejnością i zawsze! Nawet jak procek wysyła jakiś długi tekst czy obrazek na lcd, to na chwilkę wyskoczy poza funkcję i szybko załatwi przełączenie w przerwaniu aby wrócić do obsługi lcd.<br /><br />Fakt, że jeżeli sobie w pętli głównej tylko przełączasz cyfry i nic poza tym to program będzie szybszy o parę taktów zegara niż z przerwaniami ale....<br />.... po pierwsze nie potrzebujesz tak szybko przełączających się cyfr - oko dostrzega migotanie tylko do około 60Hz, Ty chcesz przełączać w MHz - po co?<br />.... po drugie jak procek ma coś jeszcze do roboty - cokolwiek - to Twój soposób bardzo szybko stanie się wolniejszy bo pętla wykonuje wszystko po kolei nie zważając co jest ważne czasowo a co zajmuje wieki. Robi swoją robotę linijka po linijce, bajt po bajcie.<br /> i jeszcze jedno: zapis <br />[syntax=c]... <br />while(1)<br />        {<br />                if(DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;znak, &amp;czCalkowita, &amp;czDziesietna))<br />                {.....[/syntax]<br />czyli przełączanie wyświetlaczy po takim warunku wcale nie jest szybsze niż obsługsa w przerwaniu. Wierz mi.<br /><br />p.s. Przepraszam za tak skrótową podpowiedź w pierwszym poście. Sądziłem, że wystarczy aby naprowadzić na właściwe tory.<br /><br />Rozumiem, że zatrzymywanie przemiatania to jedyny problem a sam odczyt temperatury działa?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4850">skalarro</a> — 20 wrz 2017, o 07:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2017-09-20T06:34:16+01:00</updated>
<published>2017-09-20T06:34:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195464#p195464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195464#p195464"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195464#p195464"><![CDATA[
Co to znaczy że się na chwile zatrzymuje? na sekundę? dwie?:) odczytuje poprawnie temperaturę? Jak odczytuje poprawnie to wszystko jest ok, tak jak kolega wyżej podpowiada, zrób obsługę wyświetlacza na przerwaniach<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 20 wrz 2017, o 06:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[malarz87]]></name></author>
<updated>2017-09-20T06:20:58+01:00</updated>
<published>2017-09-20T06:20:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195463#p195463</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195463#p195463"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195463#p195463"><![CDATA[
Ale co przerwania?<br />Miałem przerwania, ale stwierdziłem, że nie są mi potrzebne tylko jak się da to zrobię to bez. Przełączanie cyfr robię bez przerwania, to chyba powinno szybciej przełączać niż w przerwaniu.<br />Przecież będzie działało z pełną prędkością procesora, a nie co przerwanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2362">malarz87</a> — 20 wrz 2017, o 06:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[skalarro]]></name></author>
<updated>2017-09-19T21:46:20+01:00</updated>
<published>2017-09-19T21:46:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195457#p195457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195457#p195457"/>
<title type="html"><![CDATA[Re: Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195457#p195457"><![CDATA[
Przerwania Panie szanowny. Przerwania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4850">skalarro</a> — 19 wrz 2017, o 21:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[malarz87]]></name></author>
<updated>2017-09-19T20:45:28+01:00</updated>
<published>2017-09-19T20:45:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195447#p195447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195447#p195447"/>
<title type="html"><![CDATA[Czujnik DS18B20 i biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19232&amp;p=195447#p195447"><![CDATA[
Witam,<br />wykonałem projekcik z wykorzystaniem czujnika temp. DS18B20 po 1-wire.<br />Użyta biblioteka to biblioteka z bluebooka.<br />Problem zaczyna się, gdy wywołuję funkcję [syntax=c]DS18X20_read_meas()[/syntax]<br />Wtedy procesor zatrzymuje się(może oczekuje na odebranie danych) na chwilę co objawia się migotaniem wyświetlacza, bo prędkość przełączania pomiędzy cyframi jest za mała.<br />Czy jest może jakiś sposób na pominięcie tego, albo zrobienie w inny sposób?<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;1Wire/ds18x20.h&quot;<br /><br />void inicjalizacja();<br />void zgasEkran();<br />void zmienCyfre(uint8_t c);<br />void pokazCyfre(uint8_t c);<br /><br />#define offA PORTB |= (1&lt;&lt;PB2) //A<br />#define offB PORTB |= (1&lt;&lt;PB3) //B<br />#define offC PORTA |= (1&lt;&lt;PA0) //C<br />#define offD PORTA |= (1&lt;&lt;PA1) //D<br />#define offE PORTA |= (1&lt;&lt;PA2) //E<br />#define offF PORTB |= (1&lt;&lt;PB1) //F<br />#define offG PORTB |= (1&lt;&lt;PB0) //G<br /><br />#define onA PORTB &amp;= ~(1&lt;&lt;PB2) //A<br />#define onB PORTB &amp;= ~(1&lt;&lt;PB3) //B<br />#define onC PORTA &amp;= ~(1&lt;&lt;PA0) //C<br />#define onD PORTA &amp;= ~(1&lt;&lt;PA1) //D<br />#define onE PORTA &amp;= ~(1&lt;&lt;PA2) //E<br />#define onF PORTB &amp;= ~(1&lt;&lt;PB1) //F<br />#define onG PORTB &amp;= ~(1&lt;&lt;PB0) //G<br /><br />#define stanPrzycisku ~PINA &amp; (1&lt;&lt;PA7)<br /><br />uint8_t znak, czCalkowita, czDziesietna;<br /><br />int main(void)<br />{<br /><br />uint8_t cyfra = 0;<br />uint8_t iloscCzujnikow = 0;<br />uint8_t c0 =0, c1=0;<br /><br />inicjalizacja();<br />iloscCzujnikow = search_sensors();<br /><br />while(1)<br />{<br />if(DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;znak, &amp;czCalkowita, &amp;czDziesietna))<br />{<br />c0 = czCalkowita/10;<br />c1 = czCalkowita-(c0*10);<br />DS18X20_start_meas(DS18X20_POWER_EXTERN,NULL);//polecenie do wszystkich czujnikow na magistrali aby wykonaly pomiar temp<br />cyfra^=1;<br /><br />if(cyfra)<br />{<br />zmienCyfre(1);<br />pokazCyfre(c1);<br />}<br />else<br />{<br />zmienCyfre(0);<br />pokazCyfre(c0);<br />}<br />}<br />}<br />}<br /><br /><br /><br />void inicjalizacja()<br />{<br />//przycisk podłączony jest pod PIN PA7<br />//ustawiamy pin jako wejście<br />DDRA &amp;= ~(1&lt;&lt;PA7);<br />//podciagamy pin do wew. Vcc - wcisniecie przycisku wymusza stan niski na wejsciu<br />PORTA |= (1&lt;&lt;PA7);<br /><br />//cyfra po lewej stronie<br />//ustawienie pinu na wyjscie do zalaczania cyfry<br />DDRA |= (1&lt;&lt;PA6);<br />//wylaczenie cyfry - stanem wysokim<br />PORTA |= (1&lt;&lt;PA6);<br /><br />//cyfra po prawej stronie<br />//ustawienie pinu na wyjscie do zalaczania cyfry<br />DDRA |= (1&lt;&lt;PA5);<br />//wylaczenie cyfry - stanem wysokim<br />PORTA |= (1&lt;&lt;PA5);<br /><br />//ustawienie pinow segmentow na wyjscia<br />DDRB |= (1&lt;&lt;PB2); //A<br />DDRB |= (1&lt;&lt;PB3); //B<br />DDRA |= (1&lt;&lt;PA0); //C<br />DDRA |= (1&lt;&lt;PA1); //D<br />DDRA |= (1&lt;&lt;PA2); //E<br />DDRB |= (1&lt;&lt;PB1); //F<br />DDRB |= (1&lt;&lt;PB0); //G<br />//wylaczenie segmentow stanem wysokim<br />PORTB |= (1&lt;&lt;PB2); //A<br />PORTB |= (1&lt;&lt;PB3); //B<br />PORTA |= (1&lt;&lt;PA0); //C<br />PORTA |= (1&lt;&lt;PA1); //D<br />PORTA |= (1&lt;&lt;PA2); //E<br />PORTB |= (1&lt;&lt;PB1); //F<br />PORTB |= (1&lt;&lt;PB0); //G<br />}<br /><br /><br />void zgasEkran()<br />{<br />PORTA |= (1&lt;&lt;PA6);<br />PORTA |= (1&lt;&lt;PA5);<br />//wylaczenie segmentow stanem wysokim<br />PORTB |= (1&lt;&lt;PB2); //A<br />PORTB |= (1&lt;&lt;PB3); //B<br />PORTA |= (1&lt;&lt;PA0); //C<br />PORTA |= (1&lt;&lt;PA1); //D<br />PORTA |= (1&lt;&lt;PA2); //E<br />PORTB |= (1&lt;&lt;PB1); //F<br />PORTB |= (1&lt;&lt;PB0); //G<br />}<br /><br />void zmienCyfre(uint8_t c)<br />{<br />switch(c)<br />{<br />case 0:<br />PORTA |= (1&lt;&lt;PA5);//wylaczamy druga cyfre - stanem wysokim<br />PORTA &amp;= ~(1&lt;&lt;PA6);//zalaczamy pierwsza cyfre - stanem niskim<br />break;<br />case 1:<br />PORTA |= (1&lt;&lt;PA6);//wylaczamy pierwsza cyfre - stanem wysokim<br />PORTA &amp;= ~(1&lt;&lt;PA5);//zalaczamy druga cyfre - stanem niskim<br />break;<br />default:<br />break;<br />}<br />}<br /><br />void pokazCyfre(uint8_t c)<br />{<br />switch(c)<br />{<br />case 0:<br />onA; onB; onC; onD; onE; onF; offG;<br />break;<br />case 1:<br />offA; onB; onC; offD; offE; offF; offG;<br />break;<br />case 2:<br />onA; onB; offC; onD; onE; offF; onG;<br />break;<br />case 3:<br />onA; onB; onC; onD; offE; offF; onG;<br />break;<br />case 4:<br />offA; onB; onC; offD; offE; onF; onG;<br />break;<br />case 5:<br />onA; offB; onC; onD; offE; onF; onG;<br />break;<br />case 6:<br />onA; offB; onC; onD; onE; onF; onG;<br />break;<br />case 7:<br />onA; onB; onC; offD; offE; offF; offG;<br />break;<br />case 8:<br />onA; onB; onC; onD; onE; onF; onG;<br />break;<br />case 9:<br />onA; onB; onC; onD; offE; onF; onG;<br />break;<br />default:<br />break;<br />}<br />}[/syntax]<br /><br />Czujnik jest podłaczony telko jeden, pod PC6.<br /><a href="https://obrazkiforum.atnel.pl/2362/15999393e23bd9fee70dc2dcfd025403.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/2362/15999393e23bd9fee70dc2dcfd025403.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2362">malarz87</a> — 19 wrz 2017, o 20:45</p><hr />
]]></content>
</entry>
</feed>