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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-03-25T16:52:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2231&amp;mode</id>
<entry>
<author><name><![CDATA[diso]]></name></author>
<updated>2013-03-25T16:52:17+01:00</updated>
<published>2013-03-25T16:52:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=31719#p31719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=31719#p31719"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=31719#p31719"><![CDATA[
Podpiąłem zewnętrzny generator 16MHz i użyłem powyższego timera i przez cały czas ten sam problem...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=659">diso</a> — 25 mar 2013, o 16:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[diso]]></name></author>
<updated>2013-03-25T00:31:27+01:00</updated>
<published>2013-03-25T00:31:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=31656#p31656</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=31656#p31656"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=31656#p31656"><![CDATA[
Witam!<br />Mam taki problem, korzystam z kodu z książki pana Mirosława Kardasia do obsługi 1-wire(podobnie jak kolega u góry), jednak chcę aby on działał na ATmedze32 16MHz(generator wewnętrzny). Zmieniam dane timera (obliczone za pomocą specjalnego kalkulatora do AVR) :<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">TCCR0 |= (1&lt;&lt;WGM01);            /* tryb CTC */<br />   TCCR0 |= (1&lt;&lt;CS01)|(1&lt;&lt;CS00);      /* preskaler = 64 */<br />   OCR0 = 25;                     /* dodatkowy podział przez 25 (rej. przepełnienia) */<br />   TIMSK |= (1&lt;&lt;OCIE0);            /* zezwolenie na przerwanie CompareMatch */   <br />/* przerwanie wykonywane z częstotliwością ok 10ms (100 razy na sekundę) */<br />   /* do naszych celów nie musi być to bardzo dokładne 10ms */</div><br />i tu pojawia się mój problem, gdyż zamiast temperatury wyskakuje mi error, jeśli odłączę termometr DS18B20 wyskakuje 0.0C. <br />Połączenie czujnika w trybie NORMAL.<br />Proszę o pomoc, czy timer jest dobrze ustawiony? Czy podczas zmiany taktowania trzeba wprowadzić jeszcze jakieś modyfikacje do kodu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=659">diso</a> — 25 mar 2013, o 00:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-02-04T22:55:48+01:00</updated>
<published>2013-02-04T22:55:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26856#p26856</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26856#p26856"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26856#p26856"><![CDATA[
Zamieszę kod o który prosiłeś na pw tutaj, może się komuś jeszcze przyda. połączę dwa programy wymienione wyżej.<br />[syntax=c]<br /> #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 /> <br />#include &quot;LCD/lcd44780.h&quot;<br /> <br />#include &quot;1Wire/ds18x20.h&quot;<br /> #define LCD_PIN (1&lt;&lt;PC1)                        // definicja pinu do którego podłączona jest LCD<br />#define LCD_TOG PORTC ^= LCD_PIN        // makrodefinicja – zmiana stanu LCD<br />#define LCD_SET PORTC |=LCD_PIN<br />#define LCD_RESET &amp;= ~LCD_PIN<br />// klawisz S1<br />#define KEY_PIN (1&lt;&lt;PC0)<br />#define KEY_DOWN !(PINC &amp; LCD_PIN)<br />uint8_t klawisz_wcisniety(void); <br />void display_temp(uint8_t x);<br />uint8_t sekundnik; <br /><br />uint8_t czujniki_cnt;           /* ilość czujników na magistrali */<br />volatile uint8_t s1_flag;       /* flaga tyknięcia timera co 1 sekundę */<br />volatile uint8_t sekundy;       /* licznik sekund 0-59 */<br /> <br />uint8_t subzero, cel, cel_fract_bits;<br /> <br />int main(void) {<br /> // ****** inicjalizacja *********<br />        DDRC |= LCD_PIN;                // kierunek pinu PC1 – wyjściowy<br />        PORTC |= LCD_PIN;               // wyłączenie diody LED<br />        DDRC &amp;= ~KEY_PIN;               // kierunek pinu PC6 - wejściowy<br />        PORTC |= KEY_PIN;               // podciągnięcie pinu do VCC<br />        <br />//// ten frgmant chyba nie potrzebny - patrz komentarz niżej<br />       DDRD |= (1&lt;&lt;PD7);<br />        PORTD |= (1&lt;&lt;PD7); /* podświetlenie wyświetlacza LCD */<br /> ////////////////////////////////////////////////////////<br />        /* ustawienie TIMER0 dla F_CPU=11,0592MHz */<br />    TCCR2 |= (1&lt;&lt;WGM21);                            /* tryb CTC */<br />            TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20); /* preskaler = 1024 */<br />            OCR2 = 108;                                            /* dodatkowy podział przez 108 (rej. przepełnienia) */<br />            TIMSK |= (1&lt;&lt;OCIE2);<br /> <br />        /* przerwanie wykonywane z częstotliwością ok 10ms (100 razy na sekundę) */<br />        /* do naszych celów nie musi być to bardzo dokładne 10ms */<br /> <br />        lcd_init();     /* inicjalizacja LCD */<br /> <br />        /* sprawdzamy ile czujników DS18xxx widocznych jest na magistrali */<br />        czujniki_cnt = search_sensors();<br /> <br />        /* wysyłamy rozkaz wykonania pomiaru temperatury<br />         * do wszystkich czujników na magistrali 1Wire<br />         * zakładając, że zasilane są w trybie NORMAL,<br />         * gdyby był to tryb Parasite, należałoby użyć<br />         * jako pierwszego prarametru DS18X20_POWER_PARASITE */<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 />        /* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />        /* wyświetlamy temperaturę gdy czujnik wykryty */<br />        if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[0], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(0);<br />        else {<br />                lcd_locate(1,0);<br />                lcd_str(&quot; error &quot;);     /* wyświetlamy informację o błędzie jeśli np brak czujnika lub błąd odczytu */<br />        }<br /> <br />        /* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />        if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[1], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(9);<br />        else {<br />                lcd_locate(1,9);<br />                lcd_str(&quot; error &quot;);<br />        }<br /> <br />        sei();  /* włączamy globalne przerwania */<br /> <br />        lcd_locate(0,0);<br />        lcd_str_P(PSTR(&quot; Zewn.    Wewn.&quot;)); /* wyświetl napisy w zerowej linii LCD */<br /> <br />        /* 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( DS18X20_OK == DS18X20_read_meas(gSensorIDs[0], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(0);<br />                                else {<br />                                        lcd_locate(1,0);<br />                                        lcd_str(&quot; error &quot;);<br />                                }<br /> <br />                                if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[1], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(9);<br />                                else {<br />                                        lcd_locate(1,9);<br />                                        lcd_str(&quot; error &quot;);<br />                                }<br />                        }<br /> ////////////// załączanie podświetlania wyświetlacza <br />if(  klawisz_wcisniety()  )     // jeśli klawisz wciśnięty<br />                {<br />                    LCD_SET;        // Włącz LCD<br />                   sekundnik =30; // ustaw wartość czasu podświetlania w sekundach<br /> <br />                }<br />                   sekundnik--; // odliczanie kolejnych sekund dla ekranu <br />                  if(!sekundnik){ LCD_RESET;}<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 /> <br />/* wyświetlanie temperatury na pozycji X w drugiej linii LCD */<br />void display_temp(uint8_t x) {<br />        lcd_locate(1,x);<br />        if(subzero) lcd_str(&quot;-&quot;);       /* jeśli subzero==1 wyświetla znak minus (temp. ujemna) */<br />        else lcd_str(&quot; &quot;);      /* jeśli subzero==0 wyświetl spację zamiast znaku minus (temp. dodatnia) */<br />        lcd_int(cel);   /* wyświetl dziesiętne części temperatury  */<br />        lcd_str(&quot;.&quot;);   /* wyświetl kropkę */<br />        lcd_int(cel_fract_bits); /* wyświetl dziesiętne części stopnia */<br />        lcd_str(&quot; C &quot;); /* wyświetl znak jednostek (C - stopnie Celsiusza) */<br />}<br /> <br /> <br />/* ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH */<br />/* pełni funkcję timera programowego wyznaczającego podstawę czasu = 1s */<br />ISR(TIMER2_COMP_vect)<br />{<br />        static uint8_t cnt=0;   /* statyczna zmienna cnt do odliczania setnych ms */<br /> <br />        if(++cnt&gt;99) {  /* gdy licznik ms &gt; 99 (minęła 1 sekunda) */<br />                s1_flag=1;      /* ustaw flagę tyknięcia sekundy */<br />                sekundy++;      /* zwiększ licznik sekund */<br />                if(sekundy&gt;59) sekundy=0; /* jeśli ilość sekund &gt; 59 - wyzeruj */<br />                cnt=0;  /* wyzeru licznik setnych ms */<br />        }<br />}<br /><br />uint8_t klawisz_wcisniety(void)<br />{<br />        if( KEY_DOWN )                                  // klawisz wciśnięty ?<br />        {<br />                _delay_ms(80);                          // czas drgań styków<br />                if( KEY_DOWN ) return 1;        // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />        }<br /> <br />        return 0;       // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}<br />[/syntax]<br />Nie zmieniałem obsługi klawisza na bardziej elegancką i poprawną (chociażby taką jak proponował kolega rezasurmar) ponieważ im mniej zmian wprowadziłem tym szybciej powinieneś się odnaleźć  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> A po drugie do tego zastosowania wystarczy z powodzeniem to co napisałeś. Potestuj, jak by były jakieś błędy to sorki kompilowane na szybko na forum <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=590">Lukasz89</a> — 4 lut 2013, o 22:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-02-04T13:52:36+01:00</updated>
<published>2013-02-04T13:52:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26805#p26805</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26805#p26805"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26805#p26805"><![CDATA[
Sam stosuje timery softwerowe w/g przepisu Top Chiefa Mirka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, superdebounce + softwerowe i można bez problemu sobie potem zmienne dodatkowe wrzucać i zmieniać je co ile sekund chcesz.<p>Statystyki: Napisane przez Gość — 4 lut 2013, o 13:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-02-04T13:45:13+01:00</updated>
<published>2013-02-04T13:45:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26804#p26804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26804#p26804"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26804#p26804"><![CDATA[
Witam, <br />Aż wstyd przyznać.. <br />Do opakowania gdzie miałem kwarce 12MHz dostał się jeden o wartości 16stu MHz... <br />Po wymianie wszystko wróciło do normy działa świetnie, nic nie świruje.. DZIĘKUJĘ !!!<br /><br />-------------------<br /><br />Ale nadal pozostaje bezradny w sprawie tego guziczka który będzie mi włączał podświetlanie LCD na 30 sec..<br />Dwa posty wcześniej wrzuciłem kod który już jest w połowie zrobiony  (tak mi sie wydaje)<br />nie umiem określić zmiennej &quot;sekundnik&quot; do odliczenia czasu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 4 lut 2013, o 13:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KBCH]]></name></author>
<updated>2013-02-03T21:53:12+01:00</updated>
<published>2013-02-03T21:53:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26763#p26763</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26763#p26763"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26763#p26763"><![CDATA[
Powiedz jaki kwarc wrzuciłeś? i najlepiej zdjęcia z ustawienia fuse bitów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=781">KBCH</a> — 3 lut 2013, o 21:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-02-03T21:19:54+01:00</updated>
<published>2013-02-03T21:19:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26758#p26758</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26758#p26758"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26758#p26758"><![CDATA[
Hmm. Pomoze ktoss?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 3 lut 2013, o 21:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-02-03T11:50:22+01:00</updated>
<published>2013-02-03T11:50:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26714#p26714</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26714#p26714"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26714#p26714"><![CDATA[
Jeśli chodzi o kod główny to : <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 /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#include &quot;1Wire/ds18x20.h&quot;<br /><br />void display_temp(uint8_t x);<br /><br />uint8_t czujniki_cnt;/* ilość czujników na magistrali */<br />volatile uint8_t s1_flag;/* flaga tyknięcia timera co 1 sekundę */<br />volatile uint8_t sekundy;/* licznik sekund 0-59 */<br /><br />uint8_t subzero, cel, cel_fract_bits;<br /><br />int main(void) {<br /><br />DDRD |= (1&lt;&lt;PD7);<br />PORTD |= (1&lt;&lt;PD7); /* podświetlenie wyświetlacza LCD */<br /><br />/* ustawienie TIMER0 dla F_CPU=11,0592MHz */<br />    TCCR2 |= (1&lt;&lt;WGM21);                            /* tryb CTC */<br />            TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20); /* preskaler = 1024 */<br />            OCR2 = 108;                                            /* dodatkowy podział przez 108 (rej. przepełnienia) */<br />            TIMSK |= (1&lt;&lt;OCIE2);<br /><br />/* przerwanie wykonywane z częstotliwością ok 10ms (100 razy na sekundę) */<br />/* do naszych celów nie musi być to bardzo dokładne 10ms */<br /><br />lcd_init();/* inicjalizacja LCD */<br /><br />/* sprawdzamy ile czujników DS18xxx widocznych jest na magistrali */<br />czujniki_cnt = search_sensors();<br /><br />/* wysyłamy rozkaz wykonania pomiaru temperatury<br /> * do wszystkich czujników na magistrali 1Wire<br /> * zakładając, że zasilane są w trybie NORMAL,<br /> * gdyby był to tryb Parasite, należałoby użyć<br /> * jako pierwszego prarametru DS18X20_POWER_PARASITE */<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 />/* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />/* wyświetlamy temperaturę gdy czujnik wykryty */<br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[0], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(0);<br />else {<br />lcd_locate(1,0);<br />lcd_str(&quot; error &quot;);/* wyświetlamy informację o błędzie jeśli np brak czujnika lub błąd odczytu */<br />}<br /><br />/* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */<br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[1], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(9);<br />else {<br />lcd_locate(1,9);<br />lcd_str(&quot; error &quot;);<br />}<br /><br />sei();/* włączamy globalne przerwania */<br /><br />lcd_locate(0,0);<br />lcd_str_P(PSTR(&quot; Zewn.    Wewn.&quot;)); /* wyświetl napisy w zerowej linii LCD */<br /><br />/* 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( DS18X20_OK == DS18X20_read_meas(gSensorIDs[0], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(0);<br />else {<br />lcd_locate(1,0);<br />lcd_str(&quot; error &quot;);<br />}<br /><br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[1], &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) display_temp(9);<br />else {<br />lcd_locate(1,9);<br />lcd_str(&quot; error &quot;);<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 /><br />/* wyświetlanie temperatury na pozycji X w drugiej linii LCD */<br />void display_temp(uint8_t x) {<br />lcd_locate(1,x);<br />if(subzero) lcd_str(&quot;-&quot;);/* jeśli subzero==1 wyświetla znak minus (temp. ujemna) */<br />else lcd_str(&quot; &quot;);/* jeśli subzero==0 wyświetl spację zamiast znaku minus (temp. dodatnia) */<br />lcd_int(cel);/* wyświetl dziesiętne części temperatury  */<br />lcd_str(&quot;.&quot;);/* wyświetl kropkę */<br />lcd_int(cel_fract_bits); /* wyświetl dziesiętne części stopnia */<br />lcd_str(&quot; C &quot;); /* wyświetl znak jednostek (C - stopnie Celsiusza) */<br />}<br /><br /><br />/* ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH */<br />/* pełni funkcję timera programowego wyznaczającego podstawę czasu = 1s */<br />ISR(TIMER2_COMP_vect)<br />{<br />static uint8_t cnt=0;/* statyczna zmienna cnt do odliczania setnych ms */<br /><br />if(++cnt&gt;99) {/* gdy licznik ms &gt; 99 (minęła 1 sekunda) */<br />s1_flag=1;/* ustaw flagę tyknięcia sekundy */<br />sekundy++;/* zwiększ licznik sekund */<br />if(sekundy&gt;59) sekundy=0; /* jeśli ilość sekund &gt; 59 - wyzeruj */<br />cnt=0;/* wyzeru licznik setnych ms */<br />}<br />}<br /><br /><br /><br />[/syntax] <br /><br /><br /><br /><br />Natomiast tamten wcześniejszy jest do samego przycisku.<br /><br /><span style="color: #FF0000">Kod wstawiamy w znaczniki [syntax=c] - Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 3 lut 2013, o 11:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[staneq]]></name></author>
<updated>2013-02-03T11:44:01+01:00</updated>
<published>2013-02-03T11:44:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26712#p26712</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26712#p26712"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26712#p26712"><![CDATA[
To chyba nie jest cały program. <br /><br />Może Ci resetować bo np używasz jakiegoś przerwania którego nie uwzględniasz w programie albo wiele innych rzeczy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=770">staneq</a> — 3 lut 2013, o 11:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-02-03T11:26:17+01:00</updated>
<published>2013-02-03T11:26:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26706#p26706</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26706#p26706"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26706#p26706"><![CDATA[
Witam<br /><br />Dodaje link prezentujący dziwne działanie termometru, ciągle restartowanie programu...ewidentnie jest coś nie tak.. czasmi wyskakuje error choc, czasmi nie pokazuje temperatury, dziwne napisy, itp.. <br />czego to może być przyczyna? od strony sprzętowej raczej jest wszystko ok, styki sprawdzałem wszystko dobrze sie trzyma. Raczej to kwestia programu.<br /><br />[<a href="http://www.youtube.com/watch?v=dOzxQ0eAsjo&amp;feature=youtu.be"  class="postlink">http://www.youtube.com/watch?v=dOzxQ0eAsjo&amp;feature=youtu.be</a><br /><br />-------<br />Co do kwestii tego przycisku. <br /><br />[syntax=c]   // *************   definicje dla preprocesora<br />// Wyświeltacz LCD<br />#define LCD_PIN (1&lt;&lt;PC1)// definicja pinu do którego podłączona jest LCD<br />#define LCD_TOG PORTC ^= LCD_PIN// makrodefinicja – zmiana stanu LCD<br /><br />// klawisz S1<br />#define KEY_PIN (1&lt;&lt;PC0)<br />#define KEY_DOWN !(PINC &amp; LCD_PIN)<br /><br />uint8_t klawisz_wcisniety(void);// deklaracja funkcji<br /><br />// *************************************************** pętla główna main()<br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LCD_PIN;// kierunek pinu PC1 – wyjściowy<br />PORTC |= LCD_PIN;// wyłączenie diody LED<br />DDRC &amp;= ~KEY_PIN;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br />// ****** pętla główna programu  *********<br />while(1)<br />{<br />if(  klawisz_wcisniety()  )  // jeśli klawisz wciśnięty<br />{<br /> LCD_PIN;// Włącz LCD<br />_delay_ms(200);// pauza 200ms<br /><br />}<br />}<br />}<br />//******************************************************** koniec main()<br /><br />// definicja funkcji<br />uint8_t klawisz_wcisniety(void)<br />{<br />if( KEY_DOWN )// klawisz wciśnięty ?<br />{<br />_delay_ms(80);// czas drgań styków<br />if( KEY_DOWN ) return 1;   // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />}<br /><br />return 0;// jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}<br /><br />[/syntax]<br /><br /><br />Nie wiem jak określić zmienna sekundnik zeby odliczyć 30sec...<br /><br /><span style="color: #FF0000">Kod wstawiamy w [syntax=c] - Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 3 lut 2013, o 11:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-02-01T16:59:23+01:00</updated>
<published>2013-02-01T16:59:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26534#p26534</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26534#p26534"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26534#p26534"><![CDATA[
R3 bezpośrednio do pinu procka. A S1 do innego pinu procesora a drugi koniec do masy. <br />Co do programu to możemy Ci go napisać ale to nie o to chodzi <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Bo celem forum jest nauka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />) Spróbuj. Taka mała podpowiedź:<br />[syntax=c]<br />if(s1_flag) { // to już jest<br />    // procedura pomiaru i odczytu ds18b20<br />//////////////////////////// nowe<br />if(niski stan stabliny klawisz){ // jeśli wciśnięty <br />   sekundnik =30;<br />   włacz ekran // stan wysoki na porcie z dołączonym R3<br />   }<br />sekundnik--; //co sekunde odejmujesz 1<br />if(!sekundnik){ wyłacz ekran} // stan niski na porcie z dołączonym R3<br />///////////////////////////////<br />s1_flag=0; //to już jest <br />} /* koniec sprawdzania flagi */<br />[/syntax]<br />oczywiście musisz powołać nową zmienną np. o nazwie sekundnik i przypisać sobie porty do klawisza itp, poczytaj pierwsze lekcje z blue book'a od 173. Wyświetlacz to tak duża dioda:P<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 1 lut 2013, o 16:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-02-01T16:09:02+01:00</updated>
<published>2013-02-01T16:09:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26529#p26529</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26529#p26529"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26529#p26529"><![CDATA[
Czy sprzętowo tak to powinno wyglądać??<br /><br />a programowo chyba sobie nie poradzę..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 1 lut 2013, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-02-01T15:41:26+01:00</updated>
<published>2013-02-01T15:41:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26528#p26528</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26528#p26528"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26528#p26528"><![CDATA[
To dobrze, że działa. Tego typu problemy jak opisujesz to może kwestia złego styku, w senie, ze któryś czujnik lub rezystor pullup się odłączy. <br />Co do podświetlania to sprzęt popatrz sobie na schemat ATB jak Mirek podłączył LCD - tranzystor NPN2.<br />A co do czasu i programu to po wykryciu wciśnięcia klawisza załącz pooświetlanie LCD  i przy wykorzystaniu już działającego timera programowego policz do 30 <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=590">Lukasz89</a> — 1 lut 2013, o 15:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-02-01T15:23:58+01:00</updated>
<published>2013-02-01T15:23:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26522#p26522</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26522#p26522"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26522#p26522"><![CDATA[
Łukaszu !! <br />Działa !! <br />Czasami wyskakuje error, albo nie wyświetla jednej temperatury.. <br />Po 10 min pracy, zauważyłem, że sam się resetuje<br />ale po kilku  restartach procesora działa prawidłowo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />)<br />Jestem bardzo wdzięczny.<br /><br />Pytanie jeszcze jak zrobić aby wyświetlacz był normalnie zgaszony a po naciśnięciu switcha zaświecił się na np. 30 sec.<br /><br />Jak to ma wygladać sprzętowo i programowo ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 1 lut 2013, o 15:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-01-31T21:23:59+01:00</updated>
<published>2013-01-31T21:23:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26464#p26464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26464#p26464"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26464#p26464"><![CDATA[
Tak o kwarc, to jak możesz to daj 12 MHz, jeśli masz ustalone już fusy na zewnętrzny sygnał taktujący.<br />Razem połącz odpowiednie piny.<br />a i jeszcze wektor przerwanie zmień:[syntax=c]ISR(TIMER0_COMP_vect)<br />na <br />ISR(TIMER2_COMP_vect)<br />[/syntax]<br />i myślę że to wszystko.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 31 sty 2013, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-01-31T21:18:09+01:00</updated>
<published>2013-01-31T21:18:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26462#p26462</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26462#p26462"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26462#p26462"><![CDATA[
Witam. <br />Dziekuje bardzo za szybka odpowiedz i zaangazowanie<br /><br />Zegar chodzi ci o kwarce? Tak jak pisalem w czesniej moge dac 12mhz tak jak w projekcie wiec chyba nie musial bys nic liczyc <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />)<br /><br /> wiec wystarczy tylko zmienic ten fragment kodu no i oczywiscie piny??<br /><br />Jeszcze chcialbym zalytac odnosnie tych czujnikow jako ze maja byc dwa, polaczyc je rownolevle i na jednym porcie?? Czy lepiej na osobnych portach??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 31 sty 2013, o 21:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-01-31T21:09:34+01:00</updated>
<published>2013-01-31T21:09:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26461#p26461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26461#p26461"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26461#p26461"><![CDATA[
W medze 8 timer 0 nie posiada trybu CTC, wiedz musisz przerobić np na timer 2, ten fragment :<br />[syntax=c]TCCR0 |= (1&lt;&lt;WGM01);/* tryb CTC */<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);/* preskaler = 1024 */<br />OCR0 = 108;                       /* dodatkowy podział przez 108 (rej. przepełnienia) */<br />TIMSK |= (1&lt;&lt;OCIE0);[/syntax]<br />zamienić na ten:<br />[syntax=c]TCCR2 |= (1&lt;&lt;WGM21);/* tryb CTC */<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);/* preskaler = 1024 */<br />OCR2 = 108;                       /* dodatkowy podział przez 108 (rej. przepełnienia) */<br />TIMSK |= (1&lt;&lt;OCIE2);[/syntax]<br />Z tym, że jest to dla zegara takiego jak w projekcie, podaj jaki masz to przelicze preskaler i OCR'a.<br />Tak jak pisałeś musisz przyporządkować porty do DS'a - plik onewire.h no i lcd. I w projekcie ustaw procek na atmega 8 i odpowiedni zegar.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 31 sty 2013, o 21:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-01-31T20:32:19+01:00</updated>
<published>2013-01-31T20:32:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26458#p26458</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26458#p26458"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26458#p26458"><![CDATA[
Oczywiście kwarc mam podłączony. <br />Nie jestem pewny, że fusy dobrze wpisałem, atmega była nowa teraz pierwszy raz zmieniałem w niej fusy..<br />programuje programatorem usbasp, a program to eXtreme Burner - AVR. <br />Natomiast w programie mkavrcalculculator sprawdzam czy mi wykrywa atmege.. (połączenia nie idzie nawiązać)<br />Sprawdzałem na różnych kwarcach 8,12,16 MHZ żaden nie zadziałał... nawet bez.. <br />dziwne troszkę. <br /><br />Może odpuszczę to atmege16 i będe uruchamiał projekt na docelowej atmedze8 ?? <br />Mirku co musiał bym zmienić do poprawności działania projektu na tym procesorze??<br /><br />Na pewno:<br /><br />-piny i porty<br />- timer - tylko jaki ?? <br /><br />Czy mógłbyś mi w tym pomoc?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 31 sty 2013, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-31T16:42:53+01:00</updated>
<published>2013-01-31T16:42:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26432#p26432</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26432#p26432"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26432#p26432"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Ustawiłem takie fusy jak mi podałeś...<br />Z avr juz sie nie umiem połączyć..<br />chyba jest zablokowany... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /></div><br /><br />A czym ty programujesz fusy ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />oczywiście, że jeśli nie przestawiłeś fusków czyli działasz na fabrycznym 1MHz to będzie problem - ale równie dobrze możesz we właściwościach projektu dać 1MHz tyle że timery programowe będą wolniej działać bez przeliczenia OCRx..... Ale to nie powinno przeszkadzać - najważniejsze że dobrze będą działać opóźnienia dla obsługi DS18x20<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 sty 2013, o 16:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-01-31T16:29:08+01:00</updated>
<published>2013-01-31T16:29:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26431#p26431</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26431#p26431"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26431#p26431"><![CDATA[
A kwarc masz podłączony???<br /><br />Wgrałem przed chwilą do Atmegi32 (ale fusy są te same co w atmega16) dokładnie te ustawienia które ci podałem i na zewnętrznym kwarcu działa bez zarzutu. <br /><br />Sprawdź podłączenie kwarcu.<br /><br />PS. by &quot;zablokować&quot; atmegę czyli wyłączyć ISP musiał byś wpisać np. w HIGH E9. Ale atmega nie jest zablokowana, tylko możliwość zaprogramowania zostaje w sposób równoległy.<p>Statystyki: Napisane przez Gość — 31 sty 2013, o 16:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-01-31T16:09:29+01:00</updated>
<published>2013-01-31T16:09:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26429#p26429</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26429#p26429"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26429#p26429"><![CDATA[
Ustawiłem takie fusy jak mi podałeś...<br />Z avr juz sie nie umiem połączyć..<br />chyba jest zablokowany... <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=903">Morcinek92</a> — 31 sty 2013, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-01-31T15:58:23+01:00</updated>
<published>2013-01-31T15:58:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26426#p26426</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26426#p26426"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26426#p26426"><![CDATA[
Dla Atmegi 16 zewnętrzny kwarc powyżej 8Mhz to masz tak Fuse LOW FF, High C9, lock bajt bez zmian 3F<p>Statystyki: Napisane przez Gość — 31 sty 2013, o 15:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-01-31T15:38:42+01:00</updated>
<published>2013-01-31T15:38:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26425#p26425</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26425#p26425"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26425#p26425"><![CDATA[
Prościej jak zmienię fuse bity, <br />tylko nie umiem doczytać na jakie wartości, żeby użyć zewnętrznego oscylatora 12Mhz..<br /><br />może ktoś pomoże ? nie chciał bym zablokować procesora..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 31 sty 2013, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-01-31T15:36:47+01:00</updated>
<published>2013-01-31T15:36:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26423#p26423</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26423#p26423"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26423#p26423"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Zastanawiam się teraz... ponieważ wsad wymaga zewnętrznego generatora 12MHZ mam taki wpięty ale nie ustawiłem fusów.. może to jest przyczyna??<br /></div><br />no możliwe...<img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> bo pomiar oparty jest o określone czasy. zmień fusbity albo zmodyfikuj program (inicjalizacja timera) i przypisz w projekcie właściwą wartość kwarcu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 31 sty 2013, o 15:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-01-31T15:26:06+01:00</updated>
<published>2013-01-31T15:26:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26421#p26421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26421#p26421"/>
<title type="html"><![CDATA[Re: Termometr- DS18b20]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2231&amp;p=26421#p26421"><![CDATA[
Schematu nie chce mi się za bardzo rysować...  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Pomiedzy Vcc a DQ mam rezystor 3K3 Oma. Uzywam opcji NORMAL- powered. <br /><br />Napisze może schemat połączeń. <br /><br />LCD:<br /><br />Rs- PA0<br />RW- PA1<br />E-PA2<br />D4- PA3<br />D5- PA4 <br />D6- PA5<br />D7- PA6<br />A- PA7<br />K-  gnd<br /><br />Czujnik - 2x DS18B20 połączone równolegle <br />VCC - do vcc<br />GND- do gnd<br />DQ- do PB1<br /><br /><br />Zastanawiam się teraz... ponieważ wsad wymaga zewnętrznego generatora 12MHZ mam taki wpięty ale nie ustawiłem fusów.. może to jest przyczyna??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 31 sty 2013, o 15:26</p><hr />
]]></content>
</entry>
</feed>