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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-09-20T06:47:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4219&amp;mode</id>
<entry>
<author><name><![CDATA[MirekP]]></name></author>
<updated>2013-09-20T06:47:38+01:00</updated>
<published>2013-09-20T06:47:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50146#p50146</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50146#p50146"/>
<title type="html"><![CDATA[Re: Problem ze zbyt niskim napięciem na portach w stanie wys]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50146#p50146"><![CDATA[
Witam <br /><br />Problem rozwiązałem okazało się że miałem kilka głupich błędów w kodzie  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> , dzięki za zainteresowanie .<br /><br />Pozdrawiam<br /><br />Mirosław Pastor<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1621">MirekP</a> — 20 wrz 2013, o 06:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2013-09-19T07:10:41+01:00</updated>
<published>2013-09-19T07:10:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50064#p50064</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50064#p50064"/>
<title type="html"><![CDATA[Re: Problem ze zbyt niskim napięciem na portach w stanie wys]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50064#p50064"><![CDATA[
Zmierz napięcie między 7 a  8 nóżką uC<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 19 wrz 2013, o 07:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Juffre]]></name></author>
<updated>2013-09-18T23:00:38+01:00</updated>
<published>2013-09-18T23:00:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50057#p50057</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50057#p50057"/>
<title type="html"><![CDATA[Re: Problem ze zbyt niskim napięciem na portach w stanie wys]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50057#p50057"><![CDATA[
Sprawdź dokładnie fizyczne połączenia, aby były adekwatne do rzeczywistości. Jakim napięciem zasilacz procesor?  Na czym masz zmontowany układ? <br />Ewentualnie ustaw wszystkie porty jako wyjścia i mierz co masz na nich.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=473">Juffre</a> — 18 wrz 2013, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirekP]]></name></author>
<updated>2013-09-18T22:55:05+01:00</updated>
<published>2013-09-18T22:55:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50056#p50056</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50056#p50056"/>
<title type="html"><![CDATA[Re: Problem ze zbyt niskim napięciem na portach w stanie wys]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50056#p50056"><![CDATA[
Przepraszam <br />zmieniałem już na różne porty skopiowałem tą wersję z PB3 na którym też mam w stanie wysokim 1,7 V na tym pinie.<br />Problem taki że na jaki nie ustawie mam te nieszczęsne 1,7 V.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1621">MirekP</a> — 18 wrz 2013, o 22:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-09-18T22:50:54+01:00</updated>
<published>2013-09-18T22:50:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50055#p50055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50055#p50055"/>
<title type="html"><![CDATA[Re: Problem ze zbyt niskim napięciem na portach w stanie wys]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50055#p50055"><![CDATA[
<div class="quotetitle">Juffre napisał(a):</div><div class="quotecontent"><br />Piszesz że buzer masz na PC0 a w programie ustawiasz go na PB3<br /></div><br /><br />czyli nawet PC0 nie jest ustawione jako WYjście - pozostaje WEjściem i ma pływające napięcie w stanie wysokiej impedancji<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 18 wrz 2013, o 22:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Juffre]]></name></author>
<updated>2013-09-18T22:47:43+01:00</updated>
<published>2013-09-18T22:47:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50053#p50053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50053#p50053"/>
<title type="html"><![CDATA[Re: Problem ze zbyt niskim napięciem na portach w stanie wys]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50053#p50053"><![CDATA[
Piszesz że buzer masz na PC0 a w programie ustawiasz go na PB3<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=473">Juffre</a> — 18 wrz 2013, o 22:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirekP]]></name></author>
<updated>2013-09-18T22:25:11+01:00</updated>
<published>2013-09-18T22:25:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50047#p50047</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50047#p50047"/>
<title type="html"><![CDATA[Problem ze zbyt niskim napięciem na portach w stanie wysokim]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4219&amp;p=50047#p50047"><![CDATA[
Witam<br /><br />Mam taki problem jak ustawiam piny atmegi 8 w stan wysoki to zamiast ok 5V na pinach uzyskuje ok 1,7  V. Kompletnie tego nie rozumię . Np chodzi o np buzzer na PC0 zamiast 5V pojawia się tam tylko 1,7 V i dla diody też.<br /><br />Załączam kod orzaz schemat<br />Proszę o pomoc<br /><br />Mirek<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2013-08-25<br /> *       Autor: Mirosław Pastor<br /> */<br /><br /><br />#include&lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include&lt;avr/delay.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;1Wire/ds18x20.h&quot;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define MENU_KEY (1&lt;&lt;PC5)<br />#define UP_KEY (1&lt;&lt;PC4)<br />#define DOWN_KEY (1&lt;&lt;PC3)<br />#define ESC_KEY (1&lt;&lt;PC2)<br />#define DIODA (1&lt;&lt;PC1)<br />#define BUZZER (1&lt;&lt;PB3)<br />#define KEY_PIN PINC<br />#define LED_LIGHT (1&lt;&lt;PB0)<br /><br /><br />static uint8_t it_hist;<br />static uint8_t it_T1;<br />static uint8_t it_T2;<br /><br />typedef struct {<br />uint8_t histereza;<br />uint8_t alarm1;<br />uint8_t alarm2;<br />uint8_t led_light;<br />}dane;<br /><br />#define EEMEM __attribute__((section(&quot;.eeprom&quot;)))<br /><br />dane user EEMEM;<br />dane admin;<br /><br /><br />uint8_t klawisz_wcisniety(uint8_t klawisz);<br />uint8_t menu(void);<br />//one wire<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 />uint8_t temp1, temp2, led;<br /><br />int main(void)<br />{<br />_delay_ms(300);<br />DDRC &amp;=~(MENU_KEY|UP_KEY|DOWN_KEY|ESC_KEY);<br />PORTC |=(MENU_KEY|UP_KEY|DOWN_KEY|ESC_KEY);<br />DDRC |=(DIODA);<br />DDRB |=(BUZZER);<br />PORTC &amp;=~(DIODA);<br />PORTB &amp;=~( BUZZER);<br />DDRB |=(LED_LIGHT);<br />PORTB &amp;=~(LED_LIGHT);<br /><br /><br />lcd_init();<br /><br /><br />/* ustawienie TIMER0 dla F_CPU=1MHz */<br />TCCR2 |= (1&lt;&lt;WGM21);/* tryb CTC */<br />TCCR2 |= (1&lt;&lt;CS22);/* preskaler = 64 */<br />OCR2 = 240;/* dodatkowy podział przez 156 (rej. przepełnienia) */<br />TIMSK |= (1&lt;&lt;OCIE2);/* 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 */<br /><br />czujniki_cnt = search_sensors();<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&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) {<br />display_temp(0);<br />temp1=cel;<br />}<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&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) {<br />display_temp(9);<br />temp2=cel;<br />}<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;  T1       T2&quot;)); /* wyświetl napisy w zerowej linii LCD */<br />//-----------------------------------------------------------<br /><br />eeprom_busy_wait();<br />    eeprom_read_block(&amp;admin,&amp;user, sizeof(admin));<br />    it_hist=admin.histereza;<br />    it_T1=admin.alarm1;<br />    it_T2=admin.alarm2;<br />    led=admin.led_light;<br /><br />while(1)<br />{<br />if(klawisz_wcisniety( MENU_KEY)) menu();<br /><br />//Obsługa alarmów**************************<br />if(temp1&gt;=it_T1 + it_hist)<br />{<br />PORTC |=(DIODA);<br />PORTB |=( BUZZER);<br />}<br />if(temp1&lt;it_T1 - it_hist)<br />{<br />PORTC &amp;=~(DIODA);<br />PORTB &amp;=~(BUZZER);<br />}<br />if(temp2&gt;=it_T2 + it_hist)<br />{<br />PORTC |=(DIODA);<br />PORTB |=( BUZZER);<br />}<br />if(temp2&lt;it_T2 - it_hist)<br />{<br />PORTC &amp;=~(DIODA);<br />PORTB &amp;=~(BUZZER);<br />}<br />//*******************************************<br />if(led==1)<br />{<br />PORTB |=LED_LIGHT;<br />}<br />if(led==0)<br />{<br />PORTB &amp;=~(LED_LIGHT);<br />}<br /><br /><br /><br /><br />if(s1_flag) {/* sprawdzanie flagi tyknięć timera programowego co 1 sekundę */<br /><br />       lcd_locate(0,0);<br />   lcd_str_P(PSTR(&quot;  T1       T2&quot;)); /* wyświetl napisy w zerowej linii LCD */<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&#91;0&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) {<br />display_temp(0);<br />temp1=cel;<br />}<br />else {<br />lcd_locate(1,0);<br />lcd_str(&quot; error &quot;);<br />}<br /><br />if( DS18X20_OK == DS18X20_read_meas(gSensorIDs&#91;1&#93;, &amp;subzero, &amp;cel, &amp;cel_fract_bits) ) {<br />display_temp(9);<br />temp2=cel;<br />}<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 /><br /><br /><br />}<br />}<br /><br />uint8_t klawisz_wcisniety(uint8_t klawisz)<br />{<br />if(! (KEY_PIN &amp; klawisz) )  // klawisz wcisnięty?<br />{<br />_delay_ms(80);// czas drgania styków<br />if(! (KEY_PIN &amp; klawisz) ) return 1;  //jesli tak zwróć 1<br /><br />}<br />return 0;  //jesli nie to 0<br />}<br /><br />uint8_t menu(void)<br />{<br />cli();<br />lcd_cls();<br />lcd_locate(0,6);<br />lcd_str(&quot;Menu&quot;);<br />lcd_locate(1,0);<br />lcd_str(&quot;****************&quot;);<br /><br />uint8_t licznik=0;<br />//sprawdzenie czy któryś klawisz nie został wcisnięty<br />do{<br />if(klawisz_wcisniety( DOWN_KEY ))<br />{<br />licznik--;<br />_delay_ms(80);<br />}<br />if(klawisz_wcisniety( UP_KEY ))<br />{<br />licznik++;<br />_delay_ms(80);<br />}<br />if(licznik&gt;5) licznik=5; //jezeli przekroczono wyznaczoną liczbe opcji zatrzymaj sie na ostatniej<br /><br />switch(licznik)         //reakcja na nacisniete klawisze<br />{<br />case 1 :<br />   {<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(&quot;Histereza&quot;);<br />lcd_locate(1,0);<br />lcd_int(it_hist);<br />if(klawisz_wcisniety( MENU_KEY)) //edycja histerezy<br />{<br />lcd_locate(0,0);<br />lcd_str(&quot;Histereza edycja&quot;);<br />while(!klawisz_wcisniety(  ESC_KEY  )){  //edycja dopóli nie nacisniemy ESC<br />if(klawisz_wcisniety( UP_KEY ))  //zwiększenie histerezy<br />{<br />_delay_ms(200);<br />lcd_cls();<br />it_hist++;<br />}<br />if(klawisz_wcisniety( DOWN_KEY ))  //zmniejszenie histerezy<br />{<br />_delay_ms(200);<br />lcd_cls();<br />it_hist--;<br />}<br />if(it_hist&gt;30) it_hist=0;<br />lcd_locate(0,0);               //wyswietlanie na bieżąco<br />lcd_str(&quot;Histereza edycja&quot;);   //zmian histerezy<br />lcd_locate(1,0);<br />lcd_int(it_hist);<br /><br />};<br />}<br />_delay_ms(200);<br />break;<br />   }<br />case 2 :<br />   {<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(&quot;Alarm T1&quot;);<br />lcd_locate(1,0);<br />lcd_int(it_T1);<br />if(klawisz_wcisniety( MENU_KEY)) //edycja alarmu od temp. 1<br />{<br />  lcd_locate(0,0);<br />  lcd_str(&quot;Alarm T1 edycja&quot;);<br />  while(!klawisz_wcisniety(  ESC_KEY  )){  //edycja dopóli nie nacisniemy ESC<br />if(klawisz_wcisniety( UP_KEY ))  //zwiększenie alarmu od temp. 1<br />{<br /> _delay_ms(200);<br /> lcd_cls();<br /> it_T1++;<br />}<br />if(klawisz_wcisniety( DOWN_KEY ))  //zmniejszenie alarmu od temp. 1<br />{<br /> _delay_ms(200);<br /> lcd_cls();<br /> it_T1--;<br />}<br />if(it_T1&gt;150) it_T1=0;<br />lcd_locate(0,0);               //wyswietlanie na bieżąco<br />lcd_str(&quot;Alarm T1 edycja&quot;);   //zmian alarmu od temp. 1<br />lcd_locate(1,0);<br />lcd_int(it_T1);<br /><br />};<br />}<br />_delay_ms(200);<br />break;<br />   }<br />case 3 :<br />   {<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(&quot;Alarm T2&quot;);<br />lcd_locate(1,0);<br />lcd_int(it_T2);<br />if(klawisz_wcisniety( MENU_KEY)) //edycja alarmu od temp. 2<br />{<br /> lcd_locate(0,0);<br /> lcd_str(&quot;Alarm T2 edycja&quot;);<br /> while(!klawisz_wcisniety(  ESC_KEY  )){  //edycja dopóli nie nacisniemy ESC<br />  if(klawisz_wcisniety( UP_KEY ))  //zwiększenie alarmu od temp. 2<br />{<br /> _delay_ms(200);<br /> lcd_cls();<br /> it_T2++;<br />}<br /> if(klawisz_wcisniety( DOWN_KEY ))  //zmniejszenie alarmu od temp. 2<br />{<br /> _delay_ms(200);<br /> lcd_cls();<br /> it_T2--;<br />}<br /> if(it_T2&gt;150) it_T2=0;<br />     lcd_locate(0,0);               //wyswietlanie na bieżąco<br /> lcd_str(&quot;Alarm T2 edycja&quot;);   //zmian alarmu od temp. 2<br /> lcd_locate(1,0);<br /> lcd_int(it_T2);<br /><br />  };<br /> }<br />_delay_ms(200);<br />break;<br />   }<br />case 4:<br />{<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(&quot;Pods. LCD&quot;);<br />if(led==1)<br />{<br />lcd_locate(1,0);<br />lcd_str(&quot;TAK&quot;);<br />}<br />if(led==0)<br />{<br />lcd_locate(1,0);<br />lcd_str(&quot;NIE&quot;);<br />}<br />if(klawisz_wcisniety( MENU_KEY)) //informacje<br />{<br />lcd_locate(0,0);<br />lcd_str(&quot;Podswietlenie LCD&quot;);<br />while(!klawisz_wcisniety(  ESC_KEY  )){  //edycja dopóli nie nacisniemy ESC<br />if(klawisz_wcisniety( UP_KEY ))  //zwiększenie alarmu od temp. 2<br />{<br />_delay_ms(200);<br />lcd_cls();<br />led=1;<br />}<br />if(klawisz_wcisniety( DOWN_KEY ))  //zmniejszenie alarmu od temp. 2<br />{<br />_delay_ms(200);<br />lcd_cls();<br />led=0;<br />}<br />lcd_locate(0,0);               //wyswietlanie na bieżąco<br />lcd_str(&quot;Podsw.LCD edycja&quot;);   //zmian alarmu od temp. &#93;<br />if(led==1)<br />{<br />lcd_locate(1,0);<br />lcd_str(&quot;TAK&quot;);<br />}<br />if(led==0)<br />{<br />lcd_locate(1,0);<br />lcd_str(&quot;NIE&quot;);<br />}<br /><br />};<br />}<br />_delay_ms(200);<br />break;<br />}<br />case 5 :<br />{<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(&quot;Info&quot;);<br />if(klawisz_wcisniety( MENU_KEY)) //informacje<br />{<br />lcd_cls();<br /> while(!klawisz_wcisniety(  ESC_KEY  )){<br /> lcd_locate(0,0);<br /> lcd_str(&quot;Serwis:&quot;);<br /> lcd_locate(1,0);<br /> lcd_str(&quot;tel. 508404899&quot;);<br /> };<br />}<br />_delay_ms(200);<br />break;<br />}<br />}<br />}while(!klawisz_wcisniety(  ESC_KEY  ));  //jezeli nacisnięty klawisz ESCAPE zakończ<br />lcd_cls();<br />sei();<br />//----------------------<br />lcd_locate(0,0);<br />lcd_str(&quot;Zapis do eeprom&quot;);<br />_delay_ms(300);<br />lcd_locate(1,5);<br />lcd_str(&quot;.&quot;);<br />_delay_ms(300);<br />lcd_locate(1,6);<br />lcd_str(&quot;.&quot;);<br />_delay_ms(300);<br />lcd_locate(1,7);<br />lcd_str(&quot;.&quot;);<br />lcd_cls();<br />//----------------------<br />admin.histereza=it_hist;<br />admin.alarm1=it_T1;<br />admin.alarm2=it_T2;<br />admin.led_light=led;<br />eeprom_busy_wait();<br />eeprom_write_block(&amp;admin, &amp;user, sizeof(admin));<br />return 0;<br />}<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 />/* ================= 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 />}[/syntax]<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1621/58f7b1e28c05c1c65a30084d4e752843.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/1621/58f7b1e28c05c1c65a30084d4e752843.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1621">MirekP</a> — 18 wrz 2013, o 22:25</p><hr />
]]></content>
</entry>
</feed>