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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-01T10:36:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3714&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-31T21:04:07+01:00</updated>
<published>2013-07-31T21:04:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44019#p44019</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44019#p44019"/>
<title type="html"><![CDATA[Re: Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44019#p44019"><![CDATA[
Przy takiej obsłudze EEPROM'a to po pierwsze zarżniesz go jak gęś w TRY-MIGA <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Tak jak masz poradę wyżej - normalnie w trakcie działania programu działaj na takiej strukturze ale w RAM - po co ci EEPROM - masakra <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> EEPROM'a używasz TYLKO wtedy gdy zachodzi konieczność wyraźna a tu jak można zobaczyć z tego kodu rzeczywiście totalnie na łapu-capu tniesz po eepromie na oślep prawie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Widziałeś ten 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 />jak nie to obejrzyj go KONIECZNIE zanim zaczniesz cokolwiek dalej robić.<br /><br />Ale tak samo zajrzyj do niebieskiej książki do porządnej obsługi klawiszy jak w przykładzie z SuperDebounce:<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />A jeśli to na początek może być za trudne do wdrożenia tak od razu to przynajmniej poczytaj to:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html" >http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html</a><!-- m --><br /><br />i zastosuj chociaż taką obsługę klawiszy bo to co wyrabiasz w pętli głównej programu - co chwile kolejne pętle i pętle i pętle i pętle - to jest niestety totalnie nieporozumienie i nie dziwię się że program się gubi ale ty także <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 lip 2013, o 21:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2013-08-01T10:36:24+01:00</updated>
<published>2013-07-31T19:57:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44013#p44013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44013#p44013"/>
<title type="html"><![CDATA[Re: Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44013#p44013"><![CDATA[
Programik - wrzucam cały bo siedzę nad tym cudem od 2 dni bezskutecznie:<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 31 lip 2013, o 19:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-31T19:40:56+01:00</updated>
<published>2013-07-31T19:40:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44004#p44004</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44004#p44004"/>
<title type="html"><![CDATA[Re: Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=44004#p44004"><![CDATA[
<div class="quotetitle">ps19 napisał(a):</div><div class="quotecontent"><br />kombinowałem na różne sposoby z volatile i static ale nic nie dało.<br /></div><br /><br />Ja bym powiedział tak - można jeszcze sobie kombinować dalej dodając wszystkie możliwe inne specyfikatory (np const, inline) albo ich kombincje i też to nic nie da <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Bo poprawnie działanie programu zależy od programisty a nie od tego czy trafi szczęśliwie w jakiś specyfikator jak w lotto <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Przede wszystkim - jeśli tej twojej spornej zmiennej nie używasz poza funkcjami w przerwaniach to volatile jest niepotrzebne bo po co ?<br /><br />Zamiast tego analizuj program i funkcje bo tam masz psa pogrzebanego ... bo jak powiedział Sun można tylko zgadywać. Trzeba byłoby zobaczyć te funkcje którymi &quot;macasz&quot; te struktury i te zmienne żeby coś konkretnego podpowiedzieć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 lip 2013, o 19:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2013-07-31T16:33:16+01:00</updated>
<published>2013-07-31T16:33:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43987#p43987</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43987#p43987"/>
<title type="html"><![CDATA[Re: Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43987#p43987"><![CDATA[
Nie mam ustalonej liczby zawodników, jest to tylko &quot;przyporządkowanie&quot; każdemu okrążeniu nr zawodnika - zmieniając numer mam ilość okrążeń danego zaw. kombinowałem na różne sposoby z volatile i static ale nic nie dało.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 31 lip 2013, o 16:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-07-31T16:22:16+01:00</updated>
<published>2013-07-31T16:22:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43983#p43983</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43983#p43983"/>
<title type="html"><![CDATA[Re: Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43983#p43983"><![CDATA[
możliwe ... niemniej pozostaje tylko zgadywać prawda ??<br />bo za wiele nie wiadomo  poza tym że są 2 zawodnicy i w dwóch funkcjach ta sama zmienna<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 31 lip 2013, o 16:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-07-31T16:10:55+01:00</updated>
<published>2013-07-31T16:10:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43978#p43978</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43978#p43978"/>
<title type="html"><![CDATA[Re: Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43978#p43978"><![CDATA[
wygląda na to że tej samej zmiennej używasz dla obu zawodników i pewnie tu pies pogrzebany <br /><br />możliwe że volatile pomoże jak sugeruje Gwyn ... ale , może zrób osobne zmienne dla zawodników<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 31 lip 2013, o 16:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2013-07-31T15:11:58+01:00</updated>
<published>2013-07-31T15:11:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43964#p43964</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43964#p43964"/>
<title type="html"><![CDATA[Zmienne w EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3714&amp;p=43964#p43964"><![CDATA[
Witam<br /><br />Mam pytanie dlaczego zmienna która inkrementuje się tutaj:<br /><br />[syntax=c]if(klawisz_wcisniety(ZAWODNIK_M))<br />{<br />lcd_cls();<br />zawodnik_przejazdy_read();<br />zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia = 0;<br />zawodnik_przejazdy_update();<br />zawodnik.numer++;<br />zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia++;<br />zawodnik_przejazdy_update();<br />}[/syntax]<br /><br />Inkrementuje się też tutaj:<br />[syntax=c]if(klawisz_wcisniety(ZAWODNIK_P))<br />{<br />lcd_cls();<br />zawodnik_przejazdy_read();<br />zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia++;<br />zawodnik_przejazdy_update();<br />}[/syntax]<br /><br /> ale jak próbuję ją odczytać poza tym if`em to dostaję 0 (jak dokonuję odczytu po zapisie w instr.warunkowej to jest taka jak powinna być)<br /><br />[syntax=c]typedef struct<br />{<br />volatile uint8_t numer;<br />volatile uint8_t okrazenia;<br />volatile uint16_t ms;<br />volatile uint8_t sek;<br />volatile uint8_t min;<br />} DANE_ZAWODNIKA;<br /><br />static DANE_ZAWODNIKA zawodnik;<br />static DANE_ZAWODNIKA zawodnik_przejazdy&#91;sizeof(zawodnik.numer)&#93;;<br />DANE_ZAWODNIKA eep_zawodnik_przejazdy&#91;sizeof(zawodnik)&#93; EEMEM;<br /><br />DANE_ZAWODNIKA stoper_tab_rank &#91;sizeof(zawodnik.numer)&#93; &#91;sizeof(zawodnik_przejazdy&#91;sizeof(zawodnik.numer)&#93;.okrazenia)&#93;;<br /><br />DANE_ZAWODNIKA stoper_tab&#91;sizeof(zawodnik.numer)&#93;&#91;sizeof(zawodnik_przejazdy&#91;sizeof(zawodnik.numer)&#93;.okrazenia)&#93;;<br />DANE_ZAWODNIKA stoper_temp; //zapis tymczasowy<br />DANE_ZAWODNIKA eep_stoper EEMEM;<br />DANE_ZAWODNIKA eep_stoper_tab&#91;sizeof(zawodnik.numer)&#93;&#91;sizeof(zawodnik_przejazdy&#91;sizeof(zawodnik.numer)&#93;.okrazenia)&#93; EEMEM;<br /><br />void zawodnik_przejazdy_update (void)<br />{<br />eeprom_write_byte((uint8_t*)&amp;eep_zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia, (uint8_t)zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia);<br />}<br />volatile uint8_t zawodnik_przejazdy_read (void)<br />{<br />zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia = eeprom_read_byte((const uint8_t*)&amp;eep_zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia);<br />return zawodnik_przejazdy&#91;zawodnik.numer&#93;.okrazenia;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 31 lip 2013, o 15:11</p><hr />
]]></content>
</entry>
</feed>