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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-21T18:28:52+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=6096&amp;mode</id>
<entry>
<author><name><![CDATA[doktor_piotr]]></name></author>
<updated>2014-02-21T18:28:52+01:00</updated>
<published>2014-02-21T18:28:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6096&amp;p=71401#p71401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6096&amp;p=71401#p71401"/>
<title type="html"><![CDATA[Struktury + EEM+Flash  i kopiowanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6096&amp;p=71401#p71401"><![CDATA[
Ps Przepraszam ze bez polskich liter ale jeszcze rozgryzam tego cubieboarda 2<br /><br />Problem.<br />Obejzalem juz chyba wystkie filmy i ksiazke i cos mi z tego wyszlo nawet dziala kopiowanie z ram do emm z flash do ram itp ale ??.<br />Na wzor kolegi rezasurmar tworzylem taka strukture<br /><br />[syntax=c]// definicja struktury ID czujników<br />typedef struct {<br />    int temp_ust;    //temperatura ustawiona dla kazdego czujnika<br />    int temp_por;  // Temp wyliczana dla czujnika<br />    uint8_t id_sens&#91;OW_ROMCODE_SIZE&#93;; // tablica z ID czujników<br />    char nazwa&#91;5&#93;;// nazwa pomieszczenia przypisana<br />    uint8_t zapr;           //znacznik zaprogramowania 0 lub 1<br />    uint8_t mark;// znacznik pomieszczenia nr pomieszczenia<br />}sens_id;<br /><br />const sens_id const default_sens_id&#91;&#93; PROGMEM={<br />{600,0,{40,106,81,231,2,0,0,202},{'Z','e','w','n'},1,0},//piec-temperatura stala pieca do wyliczen - mozna zmieniac<br />{6,0,{40,140,76,231,2,0,0,193},{'P','i','e','c'},1,1},//powr-wsp odjety do wyliczenia z temp wyjscia<br />{5,0,{40,235,70,231,2,0,0,58},{'P','o','w','r'},1,2},//wyjscie - wsp odjecia od temeratury pieca<br />{0,0,{40,27,63,91,0,0,0,26},{'W','y','j','s'},1,3},//zew<br />{220,0,{40,76,36,91,0,0,0,189},{'P','o','k','1'},1,4},//pok1<br />{0,0,{0,0,0,0,0,0,0,0},{'P','o','k','2'},0,5}//pok2<br />//{210,0,{40,181,122,231,2,0,0,5},1,5}//pok2<br />};<br />sens_id ram_sens_id&#91;MAXSENSORS&#93;;        // definicja tablicy danych o czujnikach sens_id w ram,<br />sens_id EEMEM eem_ram_sens_id&#91;MAXSENSORS&#93;;[/syntax]<br /><br />gdzie umieszczone sa dane o i do  czujnikow 6 szt DS18B20, umiescilem w menu odczyt nr seryjnych i przypisanie do konkretnego mejsca, wszystko dzial ladnie ale gdy chce stworzyc i odczytac  tabele deflaut to nie kopiuja mi sie wartosci id nr czujnika <br />np<br />powinno byc <br />{40,140,76,231,2,0,0,193}<br />a kopija sie wartosci <br />{40,0,0,231,0,0,0,0}<br />czyli czesc danych jest a czesc jest wyzerowana i nie wiem o co kaman<br />oczywiscie reszta jest ok przekopiowana i moge normalinie na nich operowac. <br />Help me bo juz mam dosc programowania non stop tych samych ustawien za kazdym wgraniem wsadu<br /><br />moja procedura przywracania<br /><br />[syntax=c]lcd_init();/* inicjalizacja LCD */<br />sei();<br />    lcd_locate(1,5);<br />    lcd_str(&quot;  Witam   &quot;);<br />    _delay_ms(1000);<br />    lcd_locate(1,0);<br />    lcd_cls();<br />    lcd_str(&quot;  Sprawdzam  &quot;);<br />    lcd_locate(2,0);<br />    lcd_str(&quot;   dostepne  &quot;);<br />    lcd_locate(3,0);<br />    lcd_str(&quot;  czujniki   &quot;);<br /><br />    _delay_ms(1000);<br /><br />    czujniki_cnt = search_sensors();<br />    eeprom_read_block(&amp;ram_sens_id,&amp;eem_ram_sens_id,sizeof(ram_sens_id));<br />    for (licznik=0; licznik&lt;MAXSENSORS; licznik++)<br />    {<br />        if (ram_sens_id&#91;licznik&#93;.zapr==1) {licznik1=1;}<br />    }<br />    if (!licznik1)<br />    {<br />    lcd_cls();<br />    lcd_str(&quot;przepisuje config&quot;);<br />    lcd_int(licznik1);<br />    memcpy_P(&amp;ram_conf,&amp;default_conf,sizeof(ram_conf));<br />    eeprom_write_block(&amp;ram_conf,&amp;eem_conf,sizeof(ram_conf));<br />    _delay_ms(1500);<br />    lcd_cls();<br /><br />    lcd_str(&quot;przepisuje czujniki&quot;);<br />    memcpy_P(&amp;ram_sens_id,&amp;default_sens_id,sizeof(ram_sens_id));<br />    eeprom_write_block(&amp;ram_sens_id,&amp;eem_ram_sens_id,sizeof(ram_sens_id));<br />    _delay_ms(1500);<br />    }[/syntax]<br /><br /><br />To jeden problem <br />a drugi to ciagly warring - w sumie nie szkodzi ale <br /><br />main.c|530|warning: (near initialization for ‘menu[0].callback’) [enabled by default]|<br />main.c|531|warning: initialization from incompatible pointer type [enabled by default]|<br />main.c|531|warning: (near initialization for ‘menu[1].callback’) [enabled by default]|<br /><br />no i oczywiscie kod <br />[syntax=c]typedef struct{<br />uint8_t next_state&#91;4&#93;;//przejścia do następnych stanów<br />void (*callback)(uint8_t event);//funkcja zwrotna<br />} menu_item;<br />const menu_item menu&#91;&#93; = {<br />//MN UP DN OK  FUNKCJA          LCD1<br />{{0,1,5,1},start},//Alarm<br />{{1,2,0,8},menu1},//USTAW dallasy<br />{{2,3,1,7},menu2},//ODCZYT DALLASOW<br />{{3,4,2,10},menu3},//konfiguracja<br />{{4,5,3,0},menu4},//WYLACZ PRZEKAXNIK<br />{{5,0,4,6},menu5},//SZUKAJ DALLASÓW PRZYPISZ<br />{{6,6,6,6},ust_temp},//ustaw temperature w pokoju<br />{{7,7,7,2},przypisane_dallasy},//wybierz dallasa<br />{{8,8,8,9},przypisz_dallasy},//przypisz do pomieszczenia<br />{{9,9,9,8},przypisano_dallasa},//przypisz do pomieszczenia<br />{{10,10,10,11},config1},//przypisz do pomieszczenia<br />{{11,11,11,3},config2}//przypisz do pomieszczenia<br />};[/syntax]<br /><br />Moze mi ktos wyjasnic - zmienialem wielkosc tablicy szukam w necie i nic --&gt;forum ostatnia deska ratunku<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1100">doktor_piotr</a> — 21 lut 2014, o 18:28</p><hr />
]]></content>
</entry>
</feed>