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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-03-30T20:35:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=22123&amp;mode</id>
<entry>
<author><name><![CDATA[norniiica]]></name></author>
<updated>2019-03-30T20:35:49+01:00</updated>
<published>2019-03-30T20:35:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217820#p217820</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217820#p217820"/>
<title type="html"><![CDATA[Re: Zapis do EEPROM i odczyt]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217820#p217820"><![CDATA[
Dzięki bardzo! Działa -tak dla potomnych zamieszczę kod, który pamięta po restarcie ilość naciśnięć buttona. Dziękuję raz jeszcze i wszystkiego co najfajniejsze! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />int i,timer;<br />uint8_t tryb=0;<br /><br /><br />typedef struct{<br />uint16_t prog;<br />uint16_t prog2;<br />} mojaStruktura;<br /><br />mojaStruktura predkosc;<br /><br />mojaStruktura eem_cfg EEMEM; //dane w pamięci eeprom<br />mojaStruktura ram_cfg;  //dane w pamieci ram<br /><br /><br />int main(void) {<br />DDRB = 0xff;<br />PORTB = 0xff;<br />DDRD = 0xff;<br />PORTD = 0xff;<br />DDRC = 0xff;<br />PORTC = 0xff;<br /><br />#define P1 (!(PINB &amp; (1&lt;&lt;PB2))) //TAK DLA IFA //Przycisk PLUS<br /><br />lcd_init();<br /><br />_delay_ms(20);<br /><br />eeprom_read_block ((void*)&amp;ram_cfg, (void*)&amp;eem_cfg, sizeof(ram_cfg));<br />predkosc.prog = ram_cfg.prog;<br />while(1){<br /><br />//<br /><br /><br /><br />if(i%10==0){<br />lcd_cls();<br />PORTB^=(1&lt;&lt;PB5);<br />}<br /><br /><br />lcd_locate(1,0);<br />lcd_str(&quot;Prog: &quot;);<br />lcd_int(predkosc.prog);<br /><br />if (P1){<br />predkosc.prog++;<br />eeprom_write_block (&amp;predkosc, &amp;eem_cfg, sizeof(predkosc));<br />_delay_ms(20);<br />       }<br /><br />i++;<br />}}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1775">norniiica</a> — 30 mar 2019, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-03-30T09:21:32+01:00</updated>
<published>2019-03-30T09:21:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217811#p217811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217811#p217811"/>
<title type="html"><![CDATA[Re: Zapis do EEPROM i odczyt]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217811#p217811"><![CDATA[
Najpierw przed pętlą główną programu odczytujesz za pomocą funkcji <em>eeprom_read_block()</em> puste komórki pamięci EEPROM (czyli &quot;same FF&quot;) i zapisujesz je do zmiennej <em>ram_cfg</em> w RAM, a później to co odczytałeś zapisujesz z powrotem ze zmiennej <em>ram_cfg</em> w pamięci RAM do zmiennej <em>eem_cfg</em> w EEPROM, więc to oczywiste, że uzyskasz &quot;same FF&quot;.<br /><br />Domyślam się, że chciałeś zapisywać do EEPROM zmienną <em>prędkosc</em>:<br />[syntax=c]//<br />    if (P1)<br />    {<br />        predkosc.prog++;<br />        eeprom_write_block (&amp;predkosc, &amp;eem_cfg, sizeof(predkosc));<br />        delay_ms(200);<br />    }[/syntax]<br />choć taka obsługa przycisku może spowodować, że to też nie będzie działać całkowicie zgodnie z założeniem, ale coś do EEPROM powinno się zapisać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 30 mar 2019, o 09:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[norniiica]]></name></author>
<updated>2019-03-30T08:42:30+01:00</updated>
<published>2019-03-30T08:42:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217809#p217809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217809#p217809"/>
<title type="html"><![CDATA[Zapis do EEPROM i odczyt]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22123&amp;p=217809#p217809"><![CDATA[
Witam, mam problem z odczytem i zapisem w sumie też do pamięci EEPROM. Program działa tak, że po naciśnięciu przyciski P1 ma eeprom_write_block, -ale jak w mkavrCalc daję odczyt pamięci to dalej same FF w EEPROMIE...<br /><br />[syntax=cpp]#include &lt;avr/io.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />#define P1 (!(PINB &amp; (1&lt;&lt;PB2))) //TAK DLA IFA //Przycisk PLUS<br /><br />int i;<br /><br />typedef struct{<br />uint16_t prog;<br />} mojaStruktura;<br /><br />mojaStruktura predkosc;<br /><br />mojaStruktura eem_cfg EEMEM; //dane w pamięci eeprom<br />mojaStruktura ram_cfg;  //dane w pamieci ram<br /><br /><br />int main(void) {<br />DDRB = 0xff;<br />PORTB = 0xff;<br />DDRD = 0xff;<br />PORTD = 0xff;<br />DDRC = 0xff;<br />PORTC = 0xff;<br /><br />predkosc.prog =333;<br />_delay_ms(20);<br /><br />eeprom_read_block ((void*)&amp;ram_cfg, (void*)&amp;eem_cfg, sizeof(ram_cfg));<br /><br />while(1){<br /><br />lcd_locate(1,0);<br />lcd_str(&quot;Prog: &quot;);<br />lcd_int(predkosc.prog);<br /><br />if (P1){predkosc.prog++;eeprom_write_block (&amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg));_delay_ms(200);}<br /><br /><br />i++;<br />}}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1775">norniiica</a> — 30 mar 2019, o 08:42</p><hr />
]]></content>
</entry>
</feed>