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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-06-10T19:51:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15556&amp;mode</id>
<entry>
<author><name><![CDATA[SIND]]></name></author>
<updated>2016-06-10T19:51:55+01:00</updated>
<published>2016-06-10T19:51:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162063#p162063</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162063#p162063"/>
<title type="html"><![CDATA[Re: Problem z pamięcią eeprom Atmega88P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162063#p162063"><![CDATA[
Ja to widzę tak  (i sądzę że w tych linijkach siedzi  problem ) nie mam atmegi 8 i nie mam możliwości sprawdzić . <br />chodzi mi o struktury takie jak  <br /><br /> main.c <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"> <br />  // inicjalizacja ustawień fabrycznych w pamięci Flash                                   * ?  a gdzie dane zapisane do struktury? *<br /> <br />  const TCFG pgm_cfg __attribute__((__progmem__))={<br />                Thw,<br />                Thz,<br /> <br />  };                                                                                                                  * tu napisze dalej w opisie *<br /><br />                    * te 2 linie pominę one powinny być raczej  w camoon.h * <br />                                                                                                    <br />  TCFG eem_cfg EEMEM;                   // dane w pamięci EEPROM<br />  TCFG ram_cfg;    </div><br /><br />common.c<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"><br />typedef struct {<br />        uint8_t thw;<br />        uint8_t thz;<br /> <br />} TCFG;<br /> <br /> <br /> <br />// ustawienia domylne (fabryczne)<br />#define Thw 6               //                               *  coś tu chyba nie tak jest? *<br />#define Thz 12                  //                            *  coś tu chyba nie tak jest? *<br /> </div><br /><br />a czy deklaracja z main.c nie powinna być w common.h  ?<br /><br />a w miejsce linijek które mogą ci mieszać i to bardzo w kodzie <br />nie lepiej w strukturze umieszczonej w PROGMEM zapisać na stałe te wartości zamiast <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define Thw 6     <br />#define Thz 12 </div><br /><br />przecież i tak nie masz możliwości ich zmiany ? a po <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"><br />void check_and_load_defaults( void ) {<br />        uint8_t i, len = sizeof( ram_cfg );<br />        uint8_t * ram_wsk = (uint8_t*)&amp;ram_cfg;<br /> <br />        copy_eem_to_ram();<br />        for(i=0; i&lt;len; i++) {<br />                if( 0xff == *ram_wsk++ ) continue;<br />                break;<br />        }<br /> <br />        if( i == len ) {<br />                load_defaults();                                           *   chodzi mi o to co tu się wyrabia  :)  *<br />        }<br /> <br />}</div><br /><br />                                        a dokładniej TU<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"><br />void load_defaults( void ) {<br />        copy_pgm_to_ram();                   * OO tu  tu *<br />        copy_ram_to_eem();<br />}</div><br />  <br />czym zapełniasz dane z pgm ? przecież w odwołaniach do struktur pre-procesor już ci po podmieniał dane po # definach  <br /><br />// ***   Pomieszał a ja jeszcze bardziej ***//  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  dopiero zauważyłem  pomylone opisy plików  common.c &lt;-&gt; common.h  <br /><br /> nie będę zmieniał tylko 1 linijkę wrzucę <br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"><br />extern const TCFG pgm_cfg __attribute__((__progmem__));         // dane w pamięci FLASH</div> <br /> a skąd ci się to wzięło ?  <br /> nie    # include  main.c    skąd ma wiedzieć  kompilator co to jest ? <br />rozumiał bym jak by struktura była w cammon.c  zamiast w main.c <br /><br />Według mnie tu masz takie zagwozdki które mogą powodować  małe / lub / spore kłopoty  sprawdź je reszta niby ok <br /> nie mam procka ani bibliotek  ds18b20 do których się odwołujesz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9217">SIND</a> — 10 cze 2016, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kulfi27]]></name></author>
<updated>2016-06-10T09:56:37+01:00</updated>
<published>2016-06-10T09:56:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162040#p162040</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162040#p162040"/>
<title type="html"><![CDATA[Re: Problem z pamięcią eeprom Atmega88P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162040#p162040"><![CDATA[
Wrócę z pracy to sprawdzę to w taki sposób, najdziwniejsze jest to że kilka razy też dobrze wczyta a z którymś razem  thz 255.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8659">Kulfi27</a> — 10 cze 2016, o 09:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-06-10T09:42:58+01:00</updated>
<published>2016-06-10T09:42:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162039#p162039</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162039#p162039"/>
<title type="html"><![CDATA[Re: Problem z pamięcią eeprom Atmega88P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162039#p162039"><![CDATA[
Sprawdzałem ten twój kod, ale bez obsługi czujników temperatury. No niestety nie posiadam biblioteki: DS18B20/ds18b20_v1.h <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Oczywiście po za komentowaniu kilku linijek związanych z tą biblioteką i wgraniu do procka, wszystko jest OK. To znaczy obydwie zmienne thw i thz wyświetlane są na wyświetlaczu LCD prawidłowo. Po zmianie ich wartości przyciskami g1-g3 i resecie procka, zmienne te odczytywane są prawidłowo. <br />Wniosek nasuwa mi się taki, że coś musisz mieć nie tak z tą biblioteką lub jej obsługą. <br />Sprawdź sam, za komentuj tą bibliotekę, wyskoczy masa błędów, za komentuj więc te linijki kodu, gdzie te błędy występują, skompiluj i wgraj do procka. Zobaczysz, że odczyt i zapis do EEPROM'a działa  w porządku.<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 10 cze 2016, o 09:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kulfi27]]></name></author>
<updated>2016-06-10T08:02:21+01:00</updated>
<published>2016-06-10T08:02:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162029#p162029</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162029#p162029"/>
<title type="html"><![CDATA[Re: Problem z pamięcią eeprom Atmega88P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162029#p162029"><![CDATA[
Ten fragment ma za zadanie sprawdzić czy zawartość pamięci EE to same 255 jeśli tak to to wczytaj wartości zapisane w pamięci<br />flash. jeśli chodzi o weryfikacje samej pamięci EE to nie robiłem tego wrócę z pracy to sprawdzę co tam się zapisuje, dobry pomysł <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=8659">Kulfi27</a> — 10 cze 2016, o 08:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-06-10T07:27:40+01:00</updated>
<published>2016-06-10T07:27:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162027#p162027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162027#p162027"/>
<title type="html"><![CDATA[Re: Problem z pamięcią eeprom Atmega88P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162027#p162027"><![CDATA[
Co robi ten fragment w funkcji void check_and_load_defaults( void ) ?<br />[syntax=c]for(i=0; i&lt;len; i++) {<br />  if( 0xff == *ram_wsk++ ) continue;<br />  break;<br />}[/syntax]<br />W jaki sposób weryfikujesz zawartość pamięci EEPROM? Odczytujesz ją za pomocą programatora?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 10 cze 2016, o 07:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kulfi27]]></name></author>
<updated>2016-06-09T22:34:07+01:00</updated>
<published>2016-06-09T22:34:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162015#p162015</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162015#p162015"/>
<title type="html"><![CDATA[Problem z pamięcią eeprom Atmega88P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15556&amp;p=162015#p162015"><![CDATA[
Witam kolegów, zdaje sobie sprawy że temat już był wałowany kilkakrotnie ale mimo to nie mogłem znaleźć rozwiązania,<br />mam problem związany z eepromem napisałem sobie program, sterownik solara. Zapisuje sobie dwa parametry temperatura histerezy załączania i wyłączania, korzystam ze typu strukturalnego tak jak to pokazał Mirek w swoim poradniku no i problem mam taki iż po odłączeniu zasilania pierwszy parametr thw jest odczytany z EE prawidłowo ale drugi thz to już  losowo wczytuje wartość 255 czasmi kilka razy wczyta dobrze. Jeszcze nie ogarniam tego wszystkiego za dobrze więc proszę o podpowiedz co jest nie tak. Poniżej przedstawiam kod [syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;DS18B20/ds18b20_v1.h&quot;<br />#include &quot;common.h&quot;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/wdt.h&gt;<br /><br /><br /><br />#define g1 (1&lt;&lt;PC2)<br />#define g2 (1&lt;&lt;PC4)<br />#define g3 (1&lt;&lt;PC3)<br />#define d1 (1&lt;&lt;PD2)<br />#define d2 (1&lt;&lt;PC1)<br /><br />#define relly_on PORTD |= d1<br />#define relly_off PORTD &amp;=~d1<br />#define led_on PORTC |= d2<br />#define led_off PORTC &amp;=~d2<br />#define menu !(PINC &amp; g1)<br />#define minus !(PINC &amp; g2)<br />#define pplus !(PINC &amp; g3)<br /><br /><br /><br />  uint16_t Tb, Ts ;<br />  uint8_t  key_loc, menu_1,flaga_1,flaga_2 ;<br />  void wys_tem(void);<br />  void kontrola(void);<br />  void buttun(void);<br />  void poziom (uint8_t mm);<br />  void Pomiar_DS18B20( char numer_ukladu);<br />  uint16_t Odczyt_DS18B20( char numer_ukladu);<br />  char str&#91;20&#93;;<br /><br />  // inicjalizacja ustawień fabrycznych w pamięci Flash<br /><br />  const TCFG pgm_cfg __attribute__((__progmem__))={<br />  Thw,<br />  Thz,<br /><br />  };<br /><br />  TCFG eem_cfg EEMEM;// dane w pamięci EEPROM<br />  TCFG ram_cfg;    // dane w pamięci RAM<br /><br />  int main(void)<br />  {<br />  DDRC   &amp;= ~(g1 | g2 | g3 );<br />  PORTC  |= g1 | g2 | g3  ;<br />  DDRC   |= d2;<br />  PORTC  &amp;= ~d1;<br /><br />    DDRD   |=  d1;<br />    PORTD  &amp;= ~d1;<br /><br />///////////////////////////////////////////////<br />   //wyłączenie watchdoga po resecie<br />    MCUSR = 0;<br />    WDTCSR = (1&lt;&lt;WDCE) | (1&lt;&lt;WDE);<br />    WDTCSR = 0;<br /><br />///////////////////////////////////////////////<br /><br /><br />      sei();<br />      lcd_init();<br />      led_on;<br />      lcd_locate(0,4);<br />      lcd_str(&quot;SOLAR&quot; );<br />      lcd_locate(1,4);<br />      lcd_str(&quot;KULFI&quot;);<br />      _delay_ms(4000);<br />      led_off;<br />      lcd_cls();<br />      soft_timer_init();<br />      copy_eem_to_ram();              //kopiowanie eepromu do ramu<br />      check_and_load_defaults();      //sprawdzenie czy w pamieci eeprom jest cos zapisane<br />    //  wdt_enable( WDTO_120MS);<br /><br /><br />  while(1)<br />    {<br />//  wdt_reset();<br />  buttun();<br />  wys_tem();<br />  kontrola();<br /><br />      if(ram_cfg.thz &lt;= ram_cfg.thw)++ram_cfg.thz;<br />      if(ram_cfg.thw&lt;1)ram_cfg.thw=1;<br /><br />    }<br />}<br /><br />////////////////////////////////////////////////////////////<br /><br />void kontrola(void)<br />{     //sprawdzanie czy temp. solara + tem. histerezy jest wieksza od tem. bojlera<br />    if (Ts&gt;=Tb+ram_cfg.thz)<br />      {<br />   lcd_locate(1,6);<br />   lcd_str(&quot;&gt;&gt; on     &quot;);<br />   relly_on;<br />      }<br />if(Ts&lt;=Tb+ram_cfg.thw)<br />  {<br />   lcd_locate(1,6);<br />       lcd_str(&quot;&lt;&lt; off    &quot;);<br />       relly_off;<br />      }<br />      lcd_locate(1,1);<br />      lcd_str(&quot;Pom.&quot;);<br /><br />}<br /><br />/////////////////////////////////////////////////////////////<br /><br />void buttun(void){<br />//  obsługa guzika menu_1<br />  register uint8_t  key_press = !key_loc &amp;&amp; menu;  // jesli wcisnięty włącz poświetlenie<br />         if(key_press){<br />         led_on;<br />         Timer3 = 120;<br />         }<br />         else<br />         if(!Timer3)led_off;                    // odlicz czas i wyłącz podświetlenie<br /><br /><br />           if(!Timer1){<br />         if(key_press ){                  // jeśli guzik menu_1 wcisniety zwiekszaj flage<br />                ++flaga_1;<br /><br />             if(flaga_1==2){<br />                  key_loc=1;<br /><br />         if(key_loc==1){<br />             ++menu_1;<br />                 lcd_cls();<br />                }<br />         flaga_1=0;<br />                }<br />              }<br />            key_loc=0;<br /><br />         if(menu_1){<br />        Timer1=1;<br />        poziom(menu_1);                //wywołanie funkcji poziom i przekazanie do niej jako parametr menu_1<br />         }<br />         else<br />            Timer1=2;<br />        }<br />       if(!key_press)  flaga_1=0;<br /><br /><br />}<br /><br />void poziom(uint8_t mm){<br /><br />//  w zależności od wartości menu_1 ustawiaj tem. histerezy załączania lub tem. histerezy wyłaczania<br />if(mm==1){<br />  if(minus)-- ram_cfg.thw;<br /> }<br />if(mm==1){<br />  if(pplus)++ ram_cfg.thw;<br /> }<br /><br />if(mm==2){<br />  if(minus)-- ram_cfg.thz;<br /> }<br />if(mm==2){<br />  if(pplus)++ ram_cfg.thz;<br /> }<br /><br />   switch (mm)<br />   {<br />  case 1:<br /><br />    lcd_locate(0,0);<br />    lcd_str(&quot;Thw: &quot;);<br />    lcd_int(ram_cfg.thw);<br /><br />  break;<br />  case 2:<br /><br />    lcd_locate(0,0);<br />    lcd_str(&quot;Thz: &quot;);<br />    lcd_int(ram_cfg.thz);<br /><br /><br />    break;<br />  case 3:<br />          copy_ram_to_eem();         // kopiuj wartoś ram do eeprom i wyjdz z menu<br />          menu_1=0;<br />    lcd_locate(0,0);<br />    lcd_str(&quot;                &quot;);<br />    break;<br /><br />  default:<br />  break;<br />  }<br /> }<br /><br />/////////////////////////////////////////////////////////////<br /><br />  void wys_tem(void)<br />  {  //wyswietlanie oraz pomiar tem. z DS<br />            if(!Timer2)flaga_2=1;<br />            if (flaga_2)<br />                    {<br />    Pomiar_DS18B20(6);<br />    Pomiar_DS18B20(7);<br />    Timer2=4;<br />    flaga_2=0;<br />                    }<br />            else if(Timer2==2)Tb=Odczyt_DS18B20(6);<br /><br />            else if(Timer2==1)Ts=Odczyt_DS18B20(7);<br /><br />            if(!menu_1){<br />            lcd_locate(0,0);<br />    sprintf(str,&quot;Tb:%2d\xdf&quot;&quot;C&quot;,Tb);<br />    lcd_str(str);<br />    lcd_locate(0,9);<br />    sprintf(str,&quot;Ts:%2d\xdf&quot;&quot;C&quot;,Ts);<br />    lcd_str(str);<br />            }<br />  }[/syntax]<br /><br />tutaj wrzucam pliki wydzielone common.h<br />[syntax=c]/*<br /> * common.c<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;DS18B20/ds18b20_v1.h&quot;<br /><br />#include &quot;common.h&quot;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br />volatile uint8_t Timer1, Timer2, Timer3; // Timer4;/* timery programowe 100Hz */<br /><br />void soft_timer_init(void) {<br />        TCCR1B |= (1&lt;&lt;WGM12);// tryb CTC<br />TCCR1B |= (1&lt;&lt;CS12);         // preskaler = 256<br />OCR1A = 15624;                // 65535-34285 = 31250*0,000032 = 1s<br />TIMSK1 |= (1&lt;&lt;OCIE1A);// zezwolenie na przerwanie CompareMatch<br />}<br /><br /><br /><br />void copy_eem_to_ram( void ) {<br />eeprom_read_block( &amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg) );<br />}<br /><br />void copy_ram_to_eem( void ) {<br />eeprom_write_block( &amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg) );<br />}<br /><br />void copy_pgm_to_ram( void ) {<br />memcpy_P( &amp;ram_cfg, &amp;pgm_cfg, sizeof(ram_cfg) );<br />}<br /><br />void load_defaults( void ) {<br />copy_pgm_to_ram();<br />copy_ram_to_eem();<br />}<br /><br />void check_and_load_defaults( void ) {<br />uint8_t i, len = sizeof( ram_cfg );<br />uint8_t * ram_wsk = (uint8_t*)&amp;ram_cfg;<br /><br />copy_eem_to_ram();<br />for(i=0; i&lt;len; i++) {<br />if( 0xff == *ram_wsk++ ) continue;<br />break;<br />}<br /><br />if( i == len ) {<br />load_defaults();<br />}<br /><br />}<br /><br />void Pomiar_DS18B20(char numer_ukladu)<br />{<br />char sprawdz;<br />sprawdz=RESET_PULSE(numer_ukladu);<br />if(sprawdz==1)<br />{<br />send_byte(DS18B20_ROM_SKIP, numer_ukladu);<br />send_byte(DS18B20_CMD_CONVERT, numer_ukladu);<br />}<br />}<br /><br />uint16_t Odczyt_DS18B20(char numer_ukladu)<br />{<br />    char sprawdz;<br />uint8_t lsb=0,msb=0;<br />uint16_t temp=0;<br />sprawdz=RESET_PULSE(numer_ukladu);<br />if(sprawdz==1)<br />{<br />send_byte(DS18B20_ROM_SKIP, numer_ukladu);<br />send_byte(DS18B20_CMD_READ_SCRATCHPAD, numer_ukladu);<br />lsb=read_byte(numer_ukladu);<br />msb=read_byte(numer_ukladu);<br />sprawdz=RESET_PULSE(numer_ukladu);// koniec transmisji<br />temp =(lsb+(msb &lt;&lt; 8))/16;<br />}<br />return temp;<br />}<br /><br /><br /><br /><br />ISR( TIMER1_COMPA_vect) {<br />uint8_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) Timer1 = --n;<br />n = Timer2;/* 100Hz Timer2 */<br />if (n) Timer2 = --n;<br />n = Timer3;/* 100Hz Timer3 */<br />if (n) Timer3 = --n;<br />//n = Timer4;/* 100Hz Timer4 */<br />//if (n) Timer4 = --n;<br /><br />}[/syntax]<br />oraz common.c<br />[syntax=c]* common.h<br /> *<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;DS18B20/ds18b20_v1.h&quot;<br /><br />#ifndef COMMON_H_<br />#define COMMON_H_<br /><br /><br /><br />typedef struct {<br />uint8_t thw;<br />uint8_t thz;<br /><br />} TCFG;<br /><br /><br /><br />// ustawienia domylne (fabryczne)<br />#define Thw 6    //<br />#define Thz 12//<br /><br /><br />extern const TCFG pgm_cfg __attribute__((__progmem__));// dane w pamięci FLASH<br />extern TCFG eem_cfg EEMEM;// dane w pamięci EEPROM<br />extern TCFG ram_cfg;// dane w pamięci RAM<br /><br />extern volatile uint8_t Timer1, Timer2, Timer3;// Timer4;/* timery programowe 100Hz */<br /><br />extern char bufor&#91;100&#93;;<br /><br /><br />void check_and_load_defaults( void );<br />void copy_eem_to_ram( void );<br />void copy_ram_to_eem( void );<br />void copy_pgm_to_ram( void );<br />void load_defaults( void );<br /><br />void soft_timer_init( void );<br />void pokaz_alarmy( void );<br /><br />void Pomiar_DS18B20(char numer_ukladu);<br />uint16_t Odczyt_DS18B20(char numer_ukladu);<br /><br />#endif /* COMMON_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8659">Kulfi27</a> — 9 cze 2016, o 22:34</p><hr />
]]></content>
</entry>
</feed>