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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-11-12T12:42:56+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1787&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-11-12T12:42:56+01:00</updated>
<published>2012-11-12T12:42:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18673#p18673</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18673#p18673"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18673#p18673"><![CDATA[
A jak przycisk jest puszczony to nie miga co 3 sekundy? Nie przedstawiłeś nam swojej wersji funkcji <em>display_temp</em><br />Zamiast <em>if(~KEY_DOWN)</em> daj<em> if(1)</em>, a zamiast <em>if(KEY_DOWN) </em>daj <em>if(0)</em> i zobacz co będzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 12 lis 2012, o 12:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2012-11-12T10:19:46+01:00</updated>
<published>2012-11-12T10:19:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18667#p18667</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18667#p18667"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18667#p18667"><![CDATA[
Dziękuje @Krauser pomoglo.<br /><br />Mam jeszcze jeden dylemat. Do mojego układu podłączyłem drugi termometr. <br />tylko że mam 4x wyświetlacz 7segmentowy to wyświetlam tylko jedną temperaturę w danej chwili. <br />A druga temperatura wyświetla się po wciśnięciu przycisku. <br />Układ działa tak że jak przycisnę przycisk i trzymam to co około 3s miga. <br />Nie jest to raczej spowodowane drganiami styku, tylko że w złym miejscu wstawiłem ten warunek sprawdzający przycisk? <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">   /* pętla nieskończona */<br />   while(1) {<br /><br />      if(s1_flag) {   /* sprawdzanie flagi tyknięć timera programowego co 1 sekundę */<br /><br />         /* co trzy sekundy gdy reszta z dzielenia modulo 3 == 0 sprawdzaj ilość dostępnych czujników */<br />         if( 0 == (sekundy%3) ) czujniki_cnt = search_sensors();<br /><br />         /* co trzy sekundy gdy reszta z dzielenia modulo 3 == 1 wysyłaj rozkaz pomiaru do czujników */<br />         if( 1 == (sekundy%3) ) DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL );<br /><br />         /* co trzy sekundy gdy reszta z dzielenia modulo 3 == 2 czyli jedną sekundę po rozkazie konwersji<br />          *  dokonuj odczytu i wyświetlania temperatur z 2 czujników jeśli są podłączone, jeśli nie<br />          *  to pokaż komunikat o błędzie<br />          */<br />         if( 2 == (sekundy%3)) {<br />            if(~KEY_DOWN)<br />            if (DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits)) display_temp(0);<br />            else {<br />                  cy1=E;<br />                  cy2=r;<br />                  cy3=r;   <br />                  cy4=NIC;   <br />            <br />            }<br />            if(KEY_DOWN)<br />            if (DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits)) display_temp(9);<br />            else {<br />                  cy1=E;<br />                  cy2=r;<br />                  cy3=r;   <br />                  cy4=NIC;<br />            <br />            }<br />         }<br /><br />         /* zerujemy flagę aby tylko jeden raz w ciągu sekundy wykonać operacje */<br />         s1_flag=0;<br />      } /* koniec sprawdzania flagi */<br />   } /* koniec pętli nieskończonej */<br />}<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 12 lis 2012, o 10:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-11-11T20:35:47+01:00</updated>
<published>2012-11-11T20:35:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18635#p18635</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18635#p18635"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18635#p18635"><![CDATA[
[syntax=c]else if(licznik==4) LED_DATA = pgm_read_byte( &amp;cyfry[cy3]) &amp; pgm_read_byte( &amp;cyfry[14]);  [/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 11 lis 2012, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2012-11-11T19:34:22+01:00</updated>
<published>2012-11-11T19:34:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18630#p18630</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18630#p18630"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18630#p18630"><![CDATA[
A mam taki problem z moim pomiarem temp.<br />Raczej pomiar i wyświetlanie działa tylko głowie się jak tu zrobić kropkę (jako przecinek) na 3 cyfrze.<br /><br />[syntax=c]<br />uint8_t cyfry[16] PROGMEM = {<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F),// 0<br />~(SEG_B|SEG_C),// 1<br />~(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G),// 2<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_G),// 3<br />~(SEG_B|SEG_C|SEG_F|SEG_G),// 4<br />~(SEG_A|SEG_C|SEG_D|SEG_F|SEG_G),// 5<br />~(SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 6<br />~(SEG_A|SEG_B|SEG_C|SEG_F),// 7<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 8<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G),// 9<br />0xFF,// NIC (puste miejsce)<br />~(SEG_A|SEG_D|SEG_E|SEG_F|SEG_G),//E<br />~(SEG_E|SEG_G),//r<br />~(SEG_G),//minus<br />~(SEG_DP),<br />.<br />.<br />.<br /><br />if(licznik==1) LED_DATA = pgm_read_byte( &amp;cyfry[cy1] );// gdy zapalony wyśw.1 podaj stan zmiennej c1<br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry[cy2] );// gdy zapalony wyśw.2 podaj stan zmiennej c2<br />else if(licznik==4) LED_DATA = pgm_read_byte( &amp;cyfry[14],  &amp;cyfry[cy3]) ;// gdy zapalony wyśw.3 podaj stan zmiennej c3<br />else if(licznik==8) LED_DATA = pgm_read_byte( &amp;cyfry[cy4] );// gdy zapalony wyśw.4 podaj stan zmiennej c4<br />[/syntax]<br /><br />Jak mogę zrobić by przy 3 cyfrze świeciła się cały czas kropka. Już różne sposoby próbowałem i nic <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 11 lis 2012, o 19:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2012-11-11T17:40:12+01:00</updated>
<published>2012-11-11T17:40:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18623#p18623</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18623#p18623"/>
<title type="html"><![CDATA[Re: Odp: Wyświetlacz LCD plus pomiar temperatury czujnikiem ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18623#p18623"><![CDATA[
Mówiąc jeszcze prościej to co dzieje się przed główna pętlą programu jest inicjacją. W tym przypadku po włączeniu zasilania procesor jest dużo szybciej gotowy niż czujniki, więc musi poczekać. Równie dobrze można by w tym czasie zrobić jakaś animacje na wyświetlaczu która zajmuje ok sekundy. <br /><br />Podobnie rozwiązane miałem w zadaniu nr6 zmianę trybu działania programu, przed pętlą główną umieściłem warunek sprawdzający stan czujnika. I tak przed pętlą był jeszcze umieszczony delay celem ustabilizowania rezystorów pociągających wewnątrz procesora, ale Mirek już o tym pisał. Jak widzisz czasem czas, który ustawiasz w fusach jest za krótki by wszystkie zewnętrzne komponenty były gotowe do działania.<p>Statystyki: Napisane przez Gość — 11 lis 2012, o 17:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-11T17:23:35+01:00</updated>
<published>2012-11-11T17:23:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18622#p18622</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18622#p18622"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18622#p18622"><![CDATA[
z funkcjami delay jest jak z alkoholem, czyli są dla ludzi ale trzeba wiedzieć kiedy, ile i gdzie ich użyć aby nie przesadzić <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> — 11 lis 2012, o 17:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2012-11-11T17:09:19+01:00</updated>
<published>2012-11-11T17:09:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18621#p18621</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18621#p18621"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18621#p18621"><![CDATA[
Wiedziałem gdzie jest pętla główna, nie zmyliła mnie funkcje main tylko myślałem że zalecane jest w ogóle nie korzystać z opóźnień delay<br />Ale teraz wszystko jasne w tym zakresie <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=493">Jeżyk-1</a> — 11 lis 2012, o 17:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[IUVOit]]></name></author>
<updated>2012-11-11T17:01:59+01:00</updated>
<published>2012-11-11T17:01:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18620#p18620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18620#p18620"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18620#p18620"><![CDATA[
[syntax=c]<br />int main(void)<br />{<br />//inicjalizacja urządzeń<br />//tu można używać delay<br /><br /><br />while(1)  //Główna pętla programu<br />{<br /> <br /> //tu nie używaj deley<br /> //zamiast deley stosuj Timery programowe<br /> <br />}<br /><br />}//koniec main<br />[/syntax]<br /><br />Kolegę mogło zmylić słówko main, które nie oznacza głównej pętli programu <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=94">IUVOit</a> — 11 lis 2012, o 17:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-11T16:01:28+01:00</updated>
<published>2012-11-11T16:01:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18615#p18615</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18615#p18615"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18615#p18615"><![CDATA[
Źle zrozumiałeś - pętla główna to dopiero najważniejsza część programu w której najlepiej nie korzystać z delayów. I dlatego w niej ich nie ma.... Opóźnienia są panie kochany wtedy realizowane przez timery programowe i jest to opisane w tym rozdziale - może coś ci umknęło ?<br /><br />A to że przed pętlą główną raz użyłem delay'a nie ma żadnego znaczenia - przecież on nie zakłóca w żaden sposób obiegu pętli głównej czyli głównego programu, a to jest NAJWAŻNIEJSZE - teraz jaśniej ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 lis 2012, o 16:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2012-11-11T15:49:32+01:00</updated>
<published>2012-11-11T15:49:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18614#p18614</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18614#p18614"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18614#p18614"><![CDATA[
Nie w pętli głównej tego nie ma jest tylko w main<br />[syntax=c]/* czekamy 750ms na dokonanie konwersji przez podłączone czujniki */<br />_delay_ms(750);[/syntax]<br />A to znaczy że tylko w pętli głównej nie może te opóźnienie wystąpić ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 11 lis 2012, o 15:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-11T15:35:27+01:00</updated>
<published>2012-11-11T15:35:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18613#p18613</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18613#p18613"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18613#p18613"><![CDATA[
A gdzie ty tam widzisz ten _delay_ms(750) ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> może przed pętlą główną - co ma swoje uzasadnienie - ale w pętli głównej działają już timery programowe więc coś musiało ci się pomylić <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 lis 2012, o 15:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2012-11-11T15:33:15+01:00</updated>
<published>2012-11-11T15:33:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18612#p18612</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18612#p18612"/>
<title type="html"><![CDATA[Wyświetlacz LCD plus pomiar temperatury czujnikiem DS18B20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1787&amp;p=18612#p18612"><![CDATA[
Witam. Dotarły do mnie książki i mogę dalej się szkolić z tego zakresu.<br />na początek zacząłem od wyświetlacza 7-segmentowego - multipleksowanie. Które w 90% wydaje mi się ze rozumiem. <br />Teraz chciałem wykorzystać czujnik temperatury i daną temperaturę eksponować na tym wyświetlaczu, a nie na LCD jak jest w książce. Na razie jestem na etapie przerabiania kodu ale zastanawia mnie dlaczego w przykładzie wykorzystano _delay_ms(750) jak wszyscy zalecają unikania tego. czy nie można tu zastosować pętli i taimera w tym przypadku ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 11 lis 2012, o 15:33</p><hr />
]]></content>
</entry>
</feed>