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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-05-25T22:21:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=22278&amp;mode</id>
<entry>
<author><name><![CDATA[ShanSong]]></name></author>
<updated>2019-05-25T22:21:43+01:00</updated>
<published>2019-05-25T22:21:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219255#p219255</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219255#p219255"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219255#p219255"><![CDATA[
Dziękuję za szczegółowe wyjaśnienie andrews! Twój kod jest naprawdę czytelny. Jeszcze nie jestem do końca pewny jak plik *.eep będę używać do wpisywania wartości początkowych, ale popracuję nad tym. <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Atmel Studio mam akurat na komputerze to też się pobawię.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20526">ShanSong</a> — 25 maja 2019, o 22:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-05-25T12:16:19+01:00</updated>
<published>2019-05-25T12:16:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219239#p219239</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219239#p219239"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219239#p219239"><![CDATA[
<div class="quotetitle">kazekat napisał(a):</div><div class="quotecontent"><br />W eclipsie chyba czegoś takiego nie ma ale jest takie narzędzie(nie raz uratował mnie):<br /><!-- m --><a class="postlink" href="https://atnel.pl/i2c-scaner.html" >https://atnel.pl/i2c-scaner.html</a><!-- m --><br /></div><br />Sądząc po tym, że autor wątku dołącza plik nagłówkowy &lt;avr//eeprom.h&gt;, to prawdopodobnie chce zapisywać dane w wewnętrznej pamięci EEPROM mikrokontrolera, a nie w zewnętrznej. Jeśli tak, to narzędzie do skanowania magistrali I2C mu nie pomoże. Poza tym, nawet gdyby chodziło o zewnętrzną pamięć EEPROM, to niekoniecznie przecież musi ona być obsługiwana poprzez magistralę I2C, może być np. poprzez SPI, przecież autor wątku tego nie napisał.<br /><br /><strong>@ShanSong</strong><br />Uwagi kolegi <strong>Zealota</strong> są jak najbardziej zasadne. Ja chciałbym tylko jeszcze dodatkowo zaproponować, abyś uczył się od razu prawidłowego definiowania zmiennych w EEPROM.[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />uint8_t EEMEM First_i = 2;<br />uint8_t EEMEM Second_i = 1;<br />uint8_t EEMEM Third_i = 0;<br /><br />int main(void)<br />{<br />    uint8_t x = 5;<br />    eeprom_write_byte(&amp;First_i, x);<br />    PORTB = eeprom_read_byte(&amp;First_i);<br /><br />    while (1) <br />    {<br />    }<br />}[/syntax]<br />Jeśli zdefiniujesz zmienne z atrybutem <strong><em>EEMEM</em></strong> wtedy (w uproszczeniu):<ul><li>Kompilator sam zarezerwuje odpowiednią dla danego typu zmiennej ilość bajtów i automatycznie przypisze im adresy, pod którymi będą zapisane. Ty nie będziesz musiał pamiętać i zastanawiać się, pod którym adresem jest odpowiednia zmienna, będziesz mógł się do zmiennych odwoływać za pomocą ich nazw (używając operatora <strong><em>&amp;</em></strong>), tak jak to pokazałem w powyższym fragmencie kodu. Przy trzech zmiennych pamiętanie ich adresów to jeszcze może nie problem, ale jeśli umieścisz ich tam kilkanaście lub kilkadziesiąt, a może w dodatku jakieś tablice i struktury...</li><li>Jeśli przypiszesz tym zmiennym jakieś wartości początkowe, to podczas budowania programu zostanie utworzony plik z rozszerzeniem <strong><em>*.eep</em></strong>, którego będziesz mógł użyć podczas programowania mikrokontrolera, aby te wartości początkowe od razu do pamięci EEPROM wpisać. Oczywiście nadal będziesz mógł w trakcie działania programu te dane odczytywać i zapisywać tam nowe wartości.</li></ul><br />Jeśli chodzi o podgląd zmiennych w poszczególnych typach pamięci (FLASH, EEPROM, RAM) oraz symulowanie pracy programu i obserwowanie, co się dzieje w poszczególnych rejestrach mikrokontrolera, to Atmel Studio 7 ma całkiem niezły symulator i debugger. Wprawdzie wymaga to nieco czasu, żeby opanować podstawy obsługi tych narzędzi, ale moim zdaniem warto, bo czasami (nie tylko) dla początkujących są bardzo pomocne. Wprawdzie mają swoje ograniczenia (szczególnie symulator nie zawsze jest w stanie zrobić wszystko to, co debugger sprzętowy), ale dla początkującego, przy prostych programach te ograniczenia nie powinny stanowić większego problemu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 25 maja 2019, o 12:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ShanSong]]></name></author>
<updated>2019-05-25T09:48:00+01:00</updated>
<published>2019-05-25T09:48:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219237#p219237</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219237#p219237"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219237#p219237"><![CDATA[
Dzięki!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20526">ShanSong</a> — 25 maja 2019, o 09:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazekat]]></name></author>
<updated>2019-05-25T09:47:18+01:00</updated>
<published>2019-05-25T09:47:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219236#p219236</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219236#p219236"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219236#p219236"><![CDATA[
W eclipsie chyba czegoś takiego nie ma ale jest takie narzędzie(nie raz uratował mnie):<br /><!-- m --><a class="postlink" href="https://atnel.pl/i2c-scaner.html" >https://atnel.pl/i2c-scaner.html</a><!-- m --><br />ze stajni Atnel.<br />Tutaj masz poradnik do tego programu:<br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=T1g4jwub7-Y" >https://www.youtube.com/watch?v=T1g4jwub7-Y</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17021">kazekat</a> — 25 maja 2019, o 09:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ShanSong]]></name></author>
<updated>2019-05-25T08:50:59+01:00</updated>
<published>2019-05-25T08:50:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219234#p219234</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219234#p219234"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219234#p219234"><![CDATA[
Racja, nie zauważyłem braku nawiasu<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br />Przepraszam, że nagle zmienię temat, ale czy w Eclipse jest taka &quot;mapa pamięci&quot;? Nie znam prawidłowej nazwy więc nie mogę tego znaleźć  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /> <br />To bardzo pomaga wskazać czy na danych komórkach pamięci coś jest zapisane.<br /><a href="https://obrazkiforum.atnel.pl/20526/ef00670aac22405bfd801e77bb89d279.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/20526/ef00670aac22405bfd801e77bb89d279.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20526">ShanSong</a> — 25 maja 2019, o 08:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazekat]]></name></author>
<updated>2019-05-25T00:03:48+01:00</updated>
<published>2019-05-25T00:03:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219232#p219232</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219232#p219232"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219232#p219232"><![CDATA[
<div class="quotetitle">ShanSong napisał(a):</div><div class="quotecontent"><br />[syntax=c]#include &lt;avr/eeprom.h&gt;<br /><br /> uint8_t First_i = 2 ;<br /><br /> uint8_t Second_i = 1;<br /><br /> uint8_t Third_i = 0;<br /><br /><br />void eeprom_write_byte ( (uint8_t*)1 ,First_i);[/syntax]<br /><br />Zależy mi na zapisaniu tych zmiennych do pamięci EEPROM, ale nie mogę sobie z tym poradzić. Eclipse wyrzuca mi Syntaxa i nie mam pojęcia co jest tego przyczyną. Na internecie o samym zastosowaniu eeprom_write_byte / eeprom_read_byte dużo nie znalazłem. Wiem, że można tworzyć różne funkcje do zapisów, sterować pilotami i w ogóle, ale ja jeszcze nie jestem na tak zaawansowanym poziomie i chcę poznać tą podstawę zapisu i odczytu z eeprom. Będę wdzięczny za odpowiedz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br />Według mnie to brakuje Ci nawiasu przed ostatnim średnikiem w 10 linii, powinno być:<br />[syntax=c]#include &lt;avr/eeprom.h&gt;<br />     <br />     uint8_t First_i = 2 ;<br />     <br />     uint8_t Second_i = 1;<br />     <br />     uint8_t Third_i = 0;<br />     <br />     <br />    void eeprom_write_byte ( (uint8_t*)1 ,First_i) );[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17021">kazekat</a> — 25 maja 2019, o 00:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2019-05-24T22:55:35+01:00</updated>
<published>2019-05-24T22:55:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219231#p219231</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219231#p219231"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219231#p219231"><![CDATA[
Witam,<br />póki co, widać w kodzie inkluda, definicję trzech zmiennych i jakby deklarację funkcji nie zwracającej wartości, ale z dwoma parametrami funkcji.<br />pierwszym parametrem jest argument rzutowany na wskaznik uint8_t jako wskaznik wartości '1', kolejnym parametrem jest argument o wartości '2' w typie uint8_t. <br />to jakby coś pomiędzy (deklaracją/definicją/wywolaniem) funkcji....    coś mieszam?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 24 maja 2019, o 22:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom92]]></name></author>
<updated>2019-05-24T22:04:50+01:00</updated>
<published>2019-05-24T22:04:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219230#p219230</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219230#p219230"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219230#p219230"><![CDATA[
<div class="quotetitle">ShanSong napisał(a):</div><div class="quotecontent"><br />chcę poznać tą podstawę zapisu i odczytu z eeprom.<br /></div><br />Tu masz podstawy zapisu i odczytu:<br /><a href="http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html?m=1"  class="postlink">http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html?m=1</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11336">Tom92</a> — 24 maja 2019, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2019-05-24T21:22:50+01:00</updated>
<published>2019-05-24T21:22:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219229#p219229</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219229#p219229"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219229#p219229"><![CDATA[
Ponieważ zapisałeś <strong>void</strong>, a potem &quot;pewną nazwę&quot; i to <strong>poza jakimkolwiek ciałem innych funkcji</strong> to jest to prawdopodobnie interpretowane jako &quot;jakaś deklaracja&quot;, nawet jeśli nie deklarowałeś parametrów funkcji. <br />Podsumowując zapis w 10 linii jest całkowicie błędny. Oczywiście możesz się upierać, że nie -  Twój wybór <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=16487">Zealota</a> — 24 maja 2019, o 21:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ShanSong]]></name></author>
<updated>2019-05-24T21:08:03+01:00</updated>
<published>2019-05-24T21:08:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219228#p219228</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219228#p219228"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219228#p219228"><![CDATA[
deklaracja funkcji to było by void eeprom_write_byte();<br />?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />wróć <br /><br />void eeprom_write_byte(uint8_t* ,uint8_t);<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 10 minutach ]</span></strong><br /><br />Po raz pierwszy nie wyrzuciło Syntaxa. Jak dla mnie duży sukces! Dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20526">ShanSong</a> — 24 maja 2019, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2019-05-24T20:56:59+01:00</updated>
<published>2019-05-24T20:56:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219227#p219227</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219227#p219227"/>
<title type="html"><![CDATA[Re: Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219227#p219227"><![CDATA[
W dziesiątej linii zamiast robić wywołanie funkcji to robisz deklarację.<br />Usuń to &quot;void&quot; z 10 linii.<br />Oczywiście wywołanie funkcji musisz zrobić w funkcji main lub  w jakiejś innej.<br />A tu robisz jak wspomniałem pomieszanie deklaracji funkcji z wywołaniem - totalny miszmasz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16487">Zealota</a> — 24 maja 2019, o 20:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ShanSong]]></name></author>
<updated>2019-05-24T20:53:17+01:00</updated>
<published>2019-05-24T20:53:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219226#p219226</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219226#p219226"/>
<title type="html"><![CDATA[Jak zapisać daną wartość do pamięci EEPROM?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22278&amp;p=219226#p219226"><![CDATA[
[syntax=c]#include &lt;avr/eeprom.h&gt;<br /><br /> uint8_t First_i = 2 ;<br /><br /> uint8_t Second_i = 1;<br /><br /> uint8_t Third_i = 0;<br /><br /><br />void eeprom_write_byte ( (uint8_t*)1 ,First_i);[/syntax]<br /><br />Zależy mi na zapisaniu tych zmiennych do pamięci EEPROM, ale nie mogę sobie z tym poradzić. Eclipse wyrzuca mi Syntaxa i nie mam pojęcia co jest tego przyczyną. Na internecie o samym zastosowaniu eeprom_write_byte / eeprom_read_byte dużo nie znalazłem. Wiem, że można tworzyć różne funkcje do zapisów, sterować pilotami i w ogóle, ale ja jeszcze nie jestem na tak zaawansowanym poziomie i chcę poznać tą podstawę zapisu i odczytu z eeprom. Będę wdzięczny za odpowiedz <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=20526">ShanSong</a> — 24 maja 2019, o 20:53</p><hr />
]]></content>
</entry>
</feed>