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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-06-24T21:14:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=23223&amp;mode</id>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2020-06-24T21:14:21+01:00</updated>
<published>2020-06-24T21:14:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228102#p228102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228102#p228102"/>
<title type="html"><![CDATA[Re: Problem z zapisem/ odczytem z EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228102#p228102"><![CDATA[
Napisz jak-będzie dla potomnych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 24 cze 2020, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[magnetic]]></name></author>
<updated>2020-06-24T20:01:03+01:00</updated>
<published>2020-06-24T20:01:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228101#p228101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228101#p228101"/>
<title type="html"><![CDATA[Re: Problem z zapisem/ odczytem z EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228101#p228101"><![CDATA[
Problem rozwiązany, można usunąć <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21265">magnetic</a> — 24 cze 2020, o 20:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[magnetic]]></name></author>
<updated>2020-06-24T12:06:37+01:00</updated>
<published>2020-06-24T12:06:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228091#p228091</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228091#p228091"/>
<title type="html"><![CDATA[Problem z zapisem/ odczytem z EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23223&amp;p=228091#p228091"><![CDATA[
Czołem!<br />Od dłuższego czasu próbuję zlokalizować błąd, który powoduje problem z zapisem lub odczytem z zewnętrznego EEPROMu 24c512. Według noty pomieści on 512 stron o wielkości 128 bajtów. Moja funkcja do zapisu danych wygląda tak:<br />[syntax=c]void EEPROM_write_values ( void ) {<br /><br />address=((cnt1+(cnt2*4))*10)-40;<br /><br />typedef union {<br />struct {<br />uint8_t buffer1: 3;<br />uint8_t buffer2: 1;<br />uint8_t buffer3: 1;<br />};<br />uint8_t settings_buffer;<br />} unia;<br />unia settings;<br /><br />settings.buffer1=0;<br />settings.buffer2=cl_le_status;<br />settings.buffer3=lo_hi_status;<br />settings_eeprom = settings.settings_buffer;<br /><br />values_buffer&#91;0&#93; = 5;<br />values_buffer&#91;1&#93; = 10;<br />values_buffer&#91;2&#93; = 15;<br />values_buffer&#91;3&#93; = 10;<br />values_buffer&#91;4&#93; = 1;<br />values_buffer&#91;5&#93; = 7;<br />values_buffer&#91;6&#93; = 4;<br />values_buffer&#91;7&#93; = settings_eeprom;<br /><br />EEPROM_write( _24C512_ADDR, address, 8, values_buffer );<br />}[/syntax]<br /><br />Czyli jeden zapis to 8 bajtów. Na końcufunkcji &quot;EEPROM_write_values()&quot; jest delay 5ms. Do wgrywania czegoś w rodzaju ustawień fabrycznych używam if'ów w ten sposób:<br />if ( cnt_2&lt;40 ) {<br />if( cnt1==1) { cl_le_status=0; lo_hi_status=0; EEPROM_write_values(); cnt1=2; }<br />if( cnt1==2) { cl_le_status=0; lo_hi_status=1; EEPROM_write_values(); cnt1=3; }<br />if( cnt1==3) { cl_le_status=1; lo_hi_status=0; EEPROM_write_values(); cnt1=4; }<br />if( cnt1==4) { cl_le_status=1; lo_hi_status=1; EEPROM_write_values(); cnt2++; cnt1=1; }<br />}<br /><br />Problem polega na tym, że cyklicznie w &quot;tym samym&quot; miejscu dane zapisują się lub odczytują inaczej niż mam wpisane. Problem dotyczy tylko bitów nr 4 i 5 czyli &quot;values_buffer[4]&quot; i &quot;values_buffer[5]&quot; i tylko jeśli wartość licznika cnt1=4 a cnt2 jest równe 8, 16, 24, 32 lub 40 (więcej nie używam). Myślę, że rozwiązałbym problem przesuwając dane w komórkach adresowych w tych miejscach, ale to zajęłoby trochę kodu.<br />Może ktoś widzi gdzie leży problem i byłby w stanie nakierować?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21265">magnetic</a> — 24 cze 2020, o 12:06</p><hr />
]]></content>
</entry>
</feed>