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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-07-17T20:43:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22415&amp;mode</id>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-07-17T20:43:51+01:00</updated>
<published>2019-07-17T20:40:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220467#p220467</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220467#p220467"/>
<title type="html"><![CDATA[Re: Nadpisywanie eeprom, co robię źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220467#p220467"><![CDATA[
Tak jak już napisałem. Zapisujesz dane pod nieprawidłowym adresem <em>&amp;ee_setting.eeprom_ds_id.eeprom_ID[MAXSENSORS]</em>[/b] (zaraz za tablicą, czyli w miejscu,gdzie jest element struktury <strong>nastawy_eeprom</strong>. Odczytujesz z tego samego nieprawidłowego adresu, więc masz wrażenie, że wszystko jest OK. Kiedy jednak zapiszesz (prawidłowo) do elementu <strong>nastawy_eeprom</strong> jakieś dane, to nadpiszesz poprzednio zapisane dane.<br /><br />Zapisuj i odczytuj - tak jak napisałem - pod indeksem [0] i będzie OK:[syntax=c]zapisz_domyslne(&amp;ee_setting.eeprom_ds_id.eeprom_ID&#91;0&#93;, size_tab_str);<br />kopiuj_ID(&amp;ee_setting.eeprom_ds_id.eeprom_ID&#91;0&#93;, &amp;temperatury-&gt;str_idx, sizeof(temperatury));[/syntax]<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Wynik kompilacji jasno wskazuje że jest użyte tyle eeprom ile ma być<br /></div><br />Kompilator nie wychwyci tego, że podając nieprawidłowy wskaźnik, zapisujesz dane poza zadeklarowaną w EEPROM strukturą.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 17 lip 2019, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-07-17T20:25:51+01:00</updated>
<published>2019-07-17T20:25:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220464#p220464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220464#p220464"/>
<title type="html"><![CDATA[Re: Nadpisywanie eeprom, co robię źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220464#p220464"><![CDATA[
<div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br />Więc funkcja zapisu:<br /></div><br />A jak wywołujesz? Jakie argumenty przekazujesz do funkcji?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 17 lip 2019, o 20:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-07-17T20:15:10+01:00</updated>
<published>2019-07-17T20:15:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220462#p220462</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220462#p220462"/>
<title type="html"><![CDATA[Re: Nadpisywanie eeprom, co robię źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220462#p220462"><![CDATA[
<div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br />To znaczy, tutaj do struktury która jest w eeprom, ale w ram te dane są przechowywane w tablicy<br /></div><br />Nieważne, gdzie jest tablica, wewnątrz struktury czy nie, w RAM czy w EEPROM. Pierwszy element tablicy jest zawsze pod indeksem <strong>[0]</strong>, a nie <strong>[MAXSENSORS]</strong> czy jakimkolwiek innym (niezerowym).<br /><br /><div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br />ona napełnia dane w tablicy gSensorsID - w ram, tę tablicę kopiuję do eeprom.<br /></div>Ale nie pokazałeś, jak ją zapisujesz, tylko jak odczytujesz, więc skąd ma być wiadomo, czy i dlaczego dane są nadpisywane. W każdym razie, niezależnie od tego, czy funkcja <strong><em>kopiuj_ID()</em></strong> zapisuje dane z EEPROM do RAM, czy odwrotnie, ten wskaźnik podałeś nieprawidłowo. Jak już napisałem, on wskazuje <strong>za tablicę</strong>.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 17 lip 2019, o 20:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-07-17T19:51:02+01:00</updated>
<published>2019-07-17T19:51:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220460#p220460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220460#p220460"/>
<title type="html"><![CDATA[Re: Nadpisywanie eeprom, co robię źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220460#p220460"><![CDATA[
<div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">andrews napisał(a):</div><div class="quotecontent">&amp;ee_setting.eeprom_ds_id.eeprom_ID[MAXSENSORS] - do czego to wskaźnik?<br /></div><br />Do pierwszego elemntu tablicy dwuwymiarowej którą udostępnia biblioteka 1Wire z BB</div><br />Niestety nie znam tego kodu z BB, więc nie mogę się do niego odnieść, ale to na pewno nie jest wskaźnik na pierwszy element tablicy, tylko na pierwszy bajt <strong>za tablicą</strong>, czyli dokładnie tam, gdzie masz element struktury o nazwie <strong><em>nastawy_eeprom</em></strong>.<br /><br />Wskaźnik na pierwszy element tablicy wygląda tak: <strong><em>&amp;ee_setting.eeprom_ds_id.eeprom_ID[0]</em></strong>.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 17 lip 2019, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-07-17T19:27:18+01:00</updated>
<published>2019-07-17T19:27:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220457#p220457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220457#p220457"/>
<title type="html"><![CDATA[Re: Nadpisywanie eeprom, co robię źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22415&amp;p=220457#p220457"><![CDATA[
<div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br />zapisująca do podstruktury T_ID:[syntax=c]void kopiuj_ID(uint8_t emem_tab&#91;&#93;&#91;EE_ROM_CODE_SIZE&#93;, uint8_t * nazwa, size_t typ) {<br /> <br />                for (uint8_t a = 0; a &lt; MAXSENSORS; a++) {<br />                eeprom_read_block(&amp;gSensorIDs&#91;a&#93;, &amp;emem_tab&#91;a&#93;, OW_ROMCODE_SIZE); // kopiowanie numeru seryjnego<br /> <br />                *(uint8_t*) nazwa = eeprom_read_byte(&amp;emem_tab&#91;a&#93;&#91;OW_ROMCODE_SIZE&#93;); // kopiowanie indeksu na napis<br />                nazwa += typ; // przesuwam wskaznik na kolejny element tablicy struktr<br />        }<br />}[/syntax]<br /></div><br />Nie bardzo to rozumiem. Jeśli zapis, to nie powinno być raczej <strong>eeprom_write_block()</strong> i <strong>eeprom_write_byte()</strong>?<br /><br /><div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br />Przykładowe wywołanie:<br />[syntax=c]kopiuj_ID(&amp;ee_setting.eeprom_ds_id.eeprom_ID&#91;MAXSENSORS&#93;, &amp;temperatury-&gt;str_idx, sizeof(TCZUJNIKI));[/syntax]<br /></div><br /><strong>&amp;ee_setting.eeprom_ds_id.eeprom_ID[MAXSENSORS]</strong> - do czego to wskaźnik?<br />A gdzie jest początek tablicy?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 17 lip 2019, o 19:27</p><hr />
]]></content>
</entry>
</feed>