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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-09-13T13:55:48+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24309&amp;mode</id>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2022-09-13T13:55:48+01:00</updated>
<published>2022-09-13T13:55:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235994#p235994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235994#p235994"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235994#p235994"><![CDATA[
Dzięki za podpowiedz to teraz wątpliwości już mam rozwiane<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 13 wrz 2022, o 13:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2022-09-13T07:46:42+01:00</updated>
<published>2022-09-13T07:46:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235993#p235993</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235993#p235993"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235993#p235993"><![CDATA[
Ja bym do Eeproma takich rzeczy nie chował. Eeprom potrafi płatać figle przy zakłóceniach. Trzeba się zabezpieczać sumami kontrolnymi, żeby miec pewność, że to co jest zapisane nie uległo przekłamaniu.<br />Lepiej w swoim kodzie pootymalizuj co się da lub zmień procek na większy zamiast pakować zmienne do eeproma. W Eepromie trzyma sie ustawienia a nie zmienne. Chyba, że byś chciał użyć szeregowego RAMu - są takie kruszynki lub nawet FRAM. Ale to już takie fanaberie <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=1546">micky</a> — 13 wrz 2022, o 07:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2022-09-12T20:12:06+01:00</updated>
<published>2022-09-12T20:12:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235992#p235992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235992#p235992"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235992#p235992"><![CDATA[
Ja do eeproma zapisuję tylko takie dane, które chcę mieć przy starcie procka, czyli tzw.&quot;ustawienia fabryczne&quot; a<br />co do zmiennych to tam gdzie nie jest to konieczne, to nie używam zmiennych globalnych, tylko zmienne lokalne.<br />Mam nadzieję, że pomogłem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 12 wrz 2022, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2022-09-12T18:45:08+01:00</updated>
<published>2022-09-12T18:45:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235990#p235990</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235990#p235990"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235990#p235990"><![CDATA[
Tak oczywiście masz racje dopiero teraz zrozumiałem że tak należy zrobić, mylnie rozumowałem że można prościej.<br />Dlaczego w ogóle o to pytam już wyjaśniam: W pewnym moim projekcie napotkałem na problem ze stosem  dlatego kombinuje czy część zmiennych globalnych zapisałbym do EEproma i zwolniłbym RAM.<br />Ale nie wiem czy to się uda i czy to dobry kierunek moich rozważań?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 12 wrz 2022, o 18:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2022-09-12T09:50:52+01:00</updated>
<published>2022-09-12T09:50:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235984#p235984</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235984#p235984"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235984#p235984"><![CDATA[
Nie tylko zapis deklaracji zmiennej jest zły ale ty nigdzie w programie nie zapisujesz jej do eeprom a próbujesz ją z niego odczytać.<br />A jeśli chcesz ją zadeklarować od razu z wartością i zapisać, to zrób tak:<br />[syntax=c]uint8_t zmienna_w_eeprom EEMEM = 40; // deklaracja zmiennej, zarezerwowanie dla niej adresu w pamięci eeprom i przypisamie do niej wartości 40<br />eeprom_write_byte( &amp;zmienna_w_eeprom, zmienna_w_eeprom ); //zapis  wartości zmiennej do pamięci eeprom<br />zmienna_w_eeprom = eeprom_read_byte( &amp;zmienna_w_eeprom );// odczyt zmiennej z pamięci eeprom[/syntax]<br />I dopiero teraz na wyświetlacz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 12 wrz 2022, o 09:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2022-09-11T21:20:40+01:00</updated>
<published>2022-09-11T21:20:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235981#p235981</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235981#p235981"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235981#p235981"><![CDATA[
No dobrze tak będzie ale jak zrobić żeby od razu  w deklaracji zmienna      uint8_t zmienna_w_eeprom EEMEM   przyjęła  wartość  40 ?  A dopiero potem w pętli głównej ją odczytać?<br />to znaczy jak inaczej wykonać ten zapis skoro jest zły <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  <br />[syntax=c]static EEMEM uint32_t zmienna_w_eepromie = 40;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 11 wrz 2022, o 21:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2022-09-11T20:15:08+01:00</updated>
<published>2022-09-11T20:15:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235978#p235978</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235978#p235978"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235978#p235978"><![CDATA[
A gdzie masz funkcję do zapisu zmiennej do eeprom?<br />Ja bym to zrobił tak:<br />[syntax=c]uint8_t zmienna_w_eeprom EEMEM; // deklaracja zmiennej<br />uint8_t tmp,tmp1; // zmienne pomocnicze<br />tmp = 40; // przypisanie wartości do zmiennej<br />eeprom_write_byte( &amp;zmienna_w_eeprom, tmp ); //zapis  wartości zmiennej tmp do eeprom<br />tmp1 = eeprom_read_byte( &amp;zmienna_w_eeprom );// odczyt zmiennej z eeprom[/syntax]<br />i dopiero teraz wyślj zmienną &quot;tmp1&quot; na wyswietlacz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 11 wrz 2022, o 20:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2022-09-11T19:43:55+01:00</updated>
<published>2022-09-11T19:43:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235977#p235977</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235977#p235977"/>
<title type="html"><![CDATA[Re: Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235977#p235977"><![CDATA[
Użyj tej funkcji do odczytu [syntax=c]uint32_t estart = eeprom_read_dword(&amp;zmienna_w_eepromie);[/syntax] a nie [syntax=c]uint32_t estart = eeprom_read_word(&amp;zmienna_w_eepromie);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 11 wrz 2022, o 19:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2022-09-11T19:06:17+01:00</updated>
<published>2022-09-11T19:06:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235976#p235976</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235976#p235976"/>
<title type="html"><![CDATA[Problem odczytu zmiennej z eproma]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24309&amp;p=235976#p235976"><![CDATA[
Witam.<br />Dla utrwalenia wiedzy z zakresu programowania języka C  wykonałem ćwiczenie odczytu zmiennej z Eeproma i wyświetlenie na LCD.<br />Niestety robię jakiś błąd i nie wiem gdzie .<br />Opisze dokładniej:<br /><br />Deklaruję zmienną  globalną  i nadaje jej wartość 40    :<br />[syntax=c]static EEMEM uint32_t zmienna_w_eepromie = 40;[/syntax]<br /><br />Następnie próbuję odczytać  przy pomocy funkcji i przekazać do zmiennej estart :<br /><br />[syntax=c]uint32_t estart = eeprom_read_word(&amp;zmienna_w_eepromie);[/syntax]<br /><br />Niestety po próbie wyświetlenia na lcd :<br />[syntax=c]lcd_int(estart);[/syntax]<br /><br />Wartość wyświetla -1  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br />Pokarze cały kod:[syntax=c]static EEMEM uint32_t zmienna_w_eepromie = 40;<br /><br />int main ( void) {<br /><br />DDRA |= (1 &lt;&lt; PA7);    // Podswietlenie LCD<br />PORTA |= (1 &lt;&lt; PA7);   // Podswietlenie LCD<br /><br />DDRC |= (1&lt;&lt;PC7);<br />PORTC |= (1&lt;&lt;PC7);<br /><br />lcd_init();         // inicjalizacja wyswietlacza lcd<br /><br /><br /><br />while(1) {<br /><br /> uint32_t estart = eeprom_read_word(&amp;zmienna_w_eepromie);  // czytanie ilosci wylaczen z EEPROMA<br /><br /> lcd_locate(0,0);<br /> lcd_str(&quot;Wyswietl estart&quot;);  // wyswietlanie dzialania funkci EEPROM i nazwa programu<br /> lcd_locate(1,0);<br /> lcd_int(estart);<br /><br />  <br /><br /><br />}<br /><br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 11 wrz 2022, o 19:06</p><hr />
]]></content>
</entry>
</feed>