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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-02T12:06:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5344&amp;mode</id>
<entry>
<author><name><![CDATA[EmCom5]]></name></author>
<updated>2014-01-02T12:06:26+01:00</updated>
<published>2014-01-02T12:06:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63355#p63355</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63355#p63355"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63355#p63355"><![CDATA[
To ma służyć do zapisu konfiguracji (ułożenia konkretnej kolejności numerów identyfikacyjnych) i wywoływanie tylko z poziomu menu.<br /><br />Che uniknąć dodatkowej struktury tymczasowej do konfiguracji w ramie.<br /><br />==EDYCJA===<br /><br />Dokonałem małych zmian w strukturze i deklaracji zmiennej, a także skorzystałem z struktury tym czasowej.<br /><br />[syntax=c]// struktura na której pracuje taka bardzo prosta<br /><br />typedef struct {<br />        uint8_t id_sens&#91;MAXSENSORS&#93;&#91;OW_ROMCODE_SIZE&#93;;       //tablica z ID czujników<br />}T_SENS;<br /><br />// zmienne nie są już tablicami<br />T_SENS sens_ram;                      //deklaracja struktury jako tablica RAM przechowuje rom DS-a<br />T_SENS sens_ee EEMEM;         //deklaracja struktury jako tablica EEPROM[/syntax]<br /><br />Mam jeszcze jedno &quot;głupie&quot; pytanie czy da się zapisać do pamięci ram w ten sposób, jeden element tablicy z strukturze.<br /><br />[syntax=c]eeprom_write_block(&amp;sens_ram.id_sens&#91;i&#93;, &amp;sens_ee.id_sens&#91;j&#93;, sizeof(T_SENS));[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2018">EmCom5</a> — 2 sty 2014, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-01-02T08:47:25+01:00</updated>
<published>2014-01-02T08:47:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63324#p63324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63324#p63324"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63324#p63324"><![CDATA[
<div class="quotetitle">EmCom5 napisał(a):</div><div class="quotecontent"><br />Proszę o pomoc jak zapisać jedną daną z struktury w pamięci EEPROM.<br /></div><br /><br />ale chyba kolega nie do końca oglądał ten mój poradnik albo nie do końca uważnie ....<br /><br />a starałem się przekazać - że właśnie NIE MA SENSU co chwilę zapisywać oddzielnie jakiejś zmiennej do EEPROM w takiej strukturze - PO CO ? powiedz PO CO ? (ale zanim odpowiesz sobie sam - to obejrzyj jednak jeszcze raz DOKŁADNIE poradnik)<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html" >http://mirekk36.blogspot.com/2012/11/av ... iazek.html</a><!-- m --><br /><br />ja tylko podpowiem, że po to omawiałem funkcje zapisujące HURTEM całą strukturę z RAM do EEPROM i odwrotnie ... żeby właśnie nie bawić się w takie pojedyncze zapisy .... i tego chyba nie uchwyciłeś ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sty 2014, o 08:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-01-02T07:17:21+01:00</updated>
<published>2014-01-02T07:17:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63317#p63317</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63317#p63317"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63317#p63317"><![CDATA[
Niem mam doświadczenia z EEprom ale na co ja bym zwrócił <br />uwagę to na wielkość bloku danych do zapisu .<br />sizeof(T_SENS) <br />zwróci o ile się nie mylę wielkość całej struktury a nie <br />wielkość zajętą przez element struktury który chcesz zapisać <br /><br />Zaznaczam mogę się mylić ale ja bym poszedł w tym kierunku <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=1044">Zaba</a> — 2 sty 2014, o 07:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[EmCom5]]></name></author>
<updated>2014-01-02T00:02:37+01:00</updated>
<published>2014-01-02T00:02:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63297#p63297</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63297#p63297"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=63297#p63297"><![CDATA[
Witam<br /><br />Żeby nie zaśmiecać podłączę się pod temat.<br /><br />Mam problem z zapisem pojedynczego elementu struktury z pamięci RAM do pamięci EEPROM. Nie mam problemy z przeniesieniem całej struktury z RAM do EEPROM i na odwrót.<br /><br />Dane z których korzysta program.<br />[syntax=c]// struktura na której pracuje taka bardzo prosta<br />typedef struct {<br />uint8_tid_sens&#91;OW_ROMCODE_SIZE&#93;;//tablica z ID czujników<br />}T_SENS;<br /><br />// zmienne <br />T_SENS sens_ram&#91;&#93;;//deklaracja struktury jako tablica RAM przechowuje rom DS-a<br />T_SENS sens_ee&#91;&#93; EEMEM;//deklaracja struktury jako tablica EEPROM<br /><br />// z czytuje dane z eppromu do ram<br />eeprom_read_block( &amp;sens_ram, &amp;sens_ee, sizeof(T_SENS));[/syntax]<br /><br />A mój problem polega na tym że próbuję przepisać wartość z sens_ram[i].id_sens do sens_ee[j].id_sens. I nie mam zielonego pojęcia jak to przeskoczyć. Próbowałem w ten sposób.<br /><br />[syntax=c]// &quot;i&quot; i &quot;j&quot; ustawiane za pomocą klawiszy w menu<br />eeprom_write_block(&amp;sens_ram&#91;i&#93;.id_sens, &amp;sens_ee&#91;j&#93;.id_sens, sizeof(T_SENS));[/syntax]<br /><br />Proszę o pomoc jak zapisać jedną daną z struktury w pamięci EEPROM.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2018">EmCom5</a> — 2 sty 2014, o 00:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2013-12-30T20:02:30+01:00</updated>
<published>2013-12-30T20:02:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62981#p62981</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62981#p62981"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62981#p62981"><![CDATA[
Żeby cokolwiek zrobić na na zmiennych w eepromie trzeba najpierw je przekopiować do ramu. Ale zauważ, że to przekopiowamie masz już zrealizowane w funkcji check_and_load_defaults(). W ciele tej funkcji jest wywoływana funkcja copy_eem_to_ram(), która kopiuje całą strukturę z eeproma do ramu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 30 gru 2013, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[senso]]></name></author>
<updated>2013-12-30T17:51:36+01:00</updated>
<published>2013-12-30T17:51:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62948#p62948</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62948#p62948"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62948#p62948"><![CDATA[
bardzo dziękuje, zaczęło działać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />pomyślałem, że na początku trzeba z eepromu przniesc do ramu - czyli jakies zmiennej.<br />widocznie dokładnie nie obejrzałem, jeszcze raz bardzo dziękuję<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=452">senso</a> — 30 gru 2013, o 17:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-30T17:46:02+01:00</updated>
<published>2013-12-30T17:46:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62945#p62945</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62945#p62945"/>
<title type="html"><![CDATA[Re: Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62945#p62945"><![CDATA[
<div class="quotetitle">senso napisał(a):</div><div class="quotecontent"><br />int liczba_przcisniec = eem_cfg.liczba; //zczytanie liczby przycisniec<br /></div><br /><br />a cóż to jest panie kochany ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />trza obejrzeć poradnik jeszcze raz ale DOKŁADNIE tym razem<br /><br />Pomyśl sobie - po co ładujemy na początku całą strukturę z EEPROM do RAM ???<br /><br />a ty potem sobie takie rzeczy piszesz ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />przecież masz to już w RAM ... więc po co takie dziwolągi ? jak już to:<br /><br />[syntax=c]int liczba_przcisniec = ram_cfg.liczba; //wczytanie liczby przycisniec[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 gru 2013, o 17:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[senso]]></name></author>
<updated>2013-12-30T17:35:32+01:00</updated>
<published>2013-12-30T17:35:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62943#p62943</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62943#p62943"/>
<title type="html"><![CDATA[Pamięc EEPROM - dodawanie wartosci do zmiennej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5344&amp;p=62943#p62943"><![CDATA[
Witam,<br /><br />chciałbym napisać program, który przy każdym włączeniu urządzenia dodaje +1 do zmiennej. Niestety nie chce mi zapisać danej liczby, bardzo proszę o pomoc.<br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//#include &quot;komendy_at.h&quot;<br />#include &quot;common.h&quot;<br /><br />#define KEY1 (1&lt;&lt;PC2)//przycisk<br />uint8_t key_lock;//zmienna potrzebna do drgan<br /><br />// inicjalizacja ustawień fabrycznych w pamięci Flash<br />TCFG pgm_cfg PROGMEM = {<br /><br />Liczba,<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 /><br />DDRB |= (1&lt;&lt;PB1);<br />PORTB |= (1&lt;&lt;PB1); // dioda LED<br /><br />check_and_load_defaults();// sprawdzenie czy eeprom jest pusty<br /><br />int liczba_przcisniec = eem_cfg.liczba;//zczytanie liczby przycisniec<br />liczba_przcisniec++;//dodanie przycisniecie<br />ram_cfg.liczba = liczba_przcisniec;//zapisanie do ramu liczby przycisniec<br />copy_ram_to_eem();//skopiowaniu z ramu do eepromu<br /><br /><br /><br />while(1)<br />{<br /><br />if(liczba_przcisniec == 1)<br />{<br />PORTB &amp;= ~(1&lt;&lt;PB1);<br /><br />}<br />if(liczba_przcisniec == 2)<br />{<br />PORTB |= (1&lt;&lt;PB1);<br />}<br />        }<br />}[/syntax]<br /><br /><br />[syntax=c]#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#ifndef COMMON_H_<br />#define COMMON_H_<br /><br /><br /><br />typedef struct {<br />uint8_t liczba;<br />} TCFG;<br /><br /><br /><br />// ustawienia domylne (fabryczne)<br />#define Liczba 0//<br /><br /><br /><br />extern TCFG pgm_cfg 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 /><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 /><br /><br /><br />#endif /* COMMON_H_ */[/syntax]<br /><br />plik COMMON.c jest identyczny jak u Pana Mirka w poradniku<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=452">senso</a> — 30 gru 2013, o 17:35</p><hr />
]]></content>
</entry>
</feed>