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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-07-25T23:29:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3658&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-25T23:29:25+01:00</updated>
<published>2013-07-25T23:29:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43394#p43394</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43394#p43394"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43394#p43394"><![CDATA[
No i widzisz - rozwiązań jest kupa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> że tak powiem.<br /><br />A jak będziesz projektował kolejne to już bardziej zatroszczysz się o RS232 i to będą dla ciebie ważne piny - pamiętaj o tym <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=54">mirekk36</a> — 25 lip 2013, o 23:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[perlon]]></name></author>
<updated>2013-07-25T23:22:42+01:00</updated>
<published>2013-07-25T23:22:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43392#p43392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43392#p43392"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43392#p43392"><![CDATA[
Genialne w swojej prostocie !!!<br />Nie jest to odpowiedź na moje pierwsze pytanie ale rozwiązuje mój problem. Trzeba tylko zadbać, żeby RX/TX był wspólnie na wejściach sterownika, bo jak na wyjściach to transmisja będzie mi robiła dyskotekę na wyjściu oraz zadbać, żeby w czasie odczytu/zapisu nikt nie bawił się wejściami <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Przynajmniej tymi od RX/TX. Wada : jak już przeleci te 2s a PC coś nada to będą mi wyjścia robiły również dyskotekę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=382">perlon</a> — 25 lip 2013, o 23:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-25T22:47:09+01:00</updated>
<published>2013-07-25T22:47:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43385#p43385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43385#p43385"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43385#p43385"><![CDATA[
Zastanów się co jest ważniejsze? poprawne podejście ? czy zrobić coś źle a potem to łatać jeszcze gorzej ? Wszystko to tylko sprawa założeń - a w tym przypadku złych założeń <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> To że coś źle zrobiłeś - hmmm no trudno przecież nie każdy od razu zrobi wszystko super, ja także nie.<br /><br />Po pierwsze to sam widzisz, że USART to NAJWAŻNIEJSZY mechanizm i zawsze się go zostawia sobie na wszelki wypadek a szczególnie do komunikacji. <br /><br />Ale ja NAWET gdybym nie miał wolnych pinów to zrobiłbym i czasem nawet robię tak że:<br /><br />na czas np konfiguracji urządzenia ze strony PC czy to przez bootloader ale nie tylko może być przez program - można zrobić zworki i przełączyć te piny właśnie na potrzeby RS232 a po skonfigurowaniu przełączyć z powrotem tak jak było. To na prawdę nie wymaga wiele trudu i nawet w gotowym urządzeniu można to dodać.<br /><br />poza tym po co piszesz o bootloaderze - dalej czegoś nie rozumie może jeszcze. Urządzenie można konfigurować nawet bez ŻADNEGO resetowania - po co ? wystarczy dodać procedurę która po przepięciu zworek - ot po prostu wyśle dane konfiguracyjne do PC po RS232 ale nie w żadnej toksycznej postaci binarnej tylko nawet pięknej tekstowej po to aby od razu łatwo można był obrobić czy skonfigurować - chociażby nawet przy pomocy głupiego terminala:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/05/terminal-jako-kolorowy-wyswietlacz-lcd.html" >http://mirekk36.blogspot.com/2013/05/te ... z-lcd.html</a><!-- m --><br /><br />a gdy ustawisz sobie coś to BACH! zapis do procka czyli przesyłasz znowu do procka a ten sobie zapisuje w EEPROM<br /><br />przy czym odczyt i zapis do EEPROM robisz pięknie tak jak w tym poradniku<br /><br />więc powiedz mi po co tu jakiś USBASP? zgroza i odczyt w ten sposób EEPROM'a ... zgroza<br /><br />po co BOOTLOADER ?? po co ?<br /><br />skoro wszystko z poziomu procka i normalnego w nim programu można zrobić a jak się uprzesz i podłączysz moduł Bluetooth do tych pinów Rx i Tx za zworkami to i z telefonu komórkowego przez Androida .... też jest poradnik na forum jak to zrobić gdybyś chciał<br /><br />tymczasem podpowiadanie jak naprawiać to co jest DO GÓRY NOGAMI i to jeszcze w kolejny sposób, który jeszcze bardziej przerwraca wszystko - to nie nie ... sorki<br /><br />lepiej naprowadzić cię na właściwą drogę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 lip 2013, o 22:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[perlon]]></name></author>
<updated>2013-07-25T22:03:55+01:00</updated>
<published>2013-07-25T22:03:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43379#p43379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43379#p43379"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43379#p43379"><![CDATA[
Mirku. Videoporadnik oglądałem. Wszystko jest ładnie i pięknie, ale w videoporadniku komunikacja USART jest na bieżąco w trakcie działania pętli głównej. Normalnie wszystkie porty I/O mam zajęte na potrzeby zasadniczej funkcji układu w tym również piny RX/TX. Tak więc nie da się prowadzić konfiguracji sterownika w trakcie normalnej jego pracy. Jedyna szansa to wymiana danych PC&lt;-&gt;kontroler po resecie w czasie pracy bootloadera. A tego to ja jeszcze nie umiem żeby napisać sobie bootloadera. Docelowo wiem, że konfigurator na PC powinien wysłać sygnał RESET poczekać na zgłoszenie bootloadera i wysłać żądanie wysłania danych z EEPROM do PC ewentualnie wysłać żądanie odbioru danych do zapisania w EEPROM przez program bootloadera. Po uzgodnieniu ma nastąpić transmisja zawartości EEPROM w jednym lub w drugim kierunku i przejście do zasadniczego programu obsługi sterownika. Ja zrobiłem to co umiałem i mając świadomość, że jest to rozwiązanie ułomne grzecznie pytam czy jest sposób na sztywne umieszczenie konkretnych zmiennych pod konkretnymi adresami w EEPROM. To wszystko. Ponadto w poradniku nie ma ( na 99% bo może czegoś nie dopatrzyłem ) ani słowa na temat współdzielenia pamięci EEPROM przez program główny i bootloader bo o bootloaderze nie jest to poradnik. A przecież bootloader nie ma zielonego pojęcia jak program główny organizuje sobie pamięć EEPROM. Gdzieś przewinął mi się temat współdzielenia danych programu i bootloadera ale nie mogę tego teraz odszukać i nie pamiętam o jaki rodzaj pamięci chodziło. Tak więc może mi podpowiesz jak inaczej mogę programem na PC modyfikować pamięć EEPROM nie mając wolnych pinów RX/TX ( w zasadzie nie mając w ogóle wolnych pinów)?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=382">perlon</a> — 25 lip 2013, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-25T21:34:07+01:00</updated>
<published>2013-07-25T21:34:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43374#p43374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43374#p43374"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43374#p43374"><![CDATA[
No to jak to przeczytałem to (nie obraź się bo to nie złośliwie) ale jeśli chodzi o ten EEPROM to stawiasz sprawę gorzej niż DO GÓRY NOGAMI.<br /><br />Rozumiem, że poradnika nie obejrzałeś, co do sposobu tam przedstawionego w ogóle nie zajmujesz stanowiska bo po co - wolisz iść drogą taką jakiej nie zaleca się podczas programowania w C ... bo już ci pisałem że zmienne mogą zmienić lokalizację w eeprom nawet bez zmiany toolchaina - ale rozumiem, że co tam ? nie ważne <br /><br />a wszystko można zrobić bez żadnego dziwolągowatego kopiowania danych z eeproma za pomocą USBASP, modyfikacji binarki i ponownego programowania eeproma - to jest hmmm no gorzej niż do góry nogami - wybacz<br /><br />w tym poradniku masz gotowy i 10000 x prostszy sposób, Ba pewniejszy, łatwiejszy i co ważne nie trzeba ŻADNEGO programatora aby zmieniać konfigurację w EEPROM<br /><br />no tak ale po co ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 lip 2013, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[perlon]]></name></author>
<updated>2013-07-25T20:22:44+01:00</updated>
<published>2013-07-25T20:22:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43362#p43362</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43362#p43362"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43362#p43362"><![CDATA[
Mam. To jest mój kod a układ  opisałem tu <a href="http://www.elektroda.pl/rtvforum/viewtopic.php?t=2207981&amp;highlight="  class="postlink">http://www.elektroda.pl/rtvforum/viewtopic.php?t=2207981&amp;highlight=</a>. Gdy go robiłem nie miałem bladego pojęcia jak ugryźć konfigurowanie tego sterownika po USART ( teraz mam trochę większe ale jeszcze nie wystarczające). Najprościej dla mnie było właśnie odczytanie USBAsp+AVRDudem EEPROM'a obrobienie go aplikacją na PC i wrzucenie go USBAsp+AVRDud'em do EEPROM'a. Tak to sobie wymyśliłem bo wtedy nawet nie miałem przejściówki USB/USART ani nie miałem wiedzy jak napisać bootloader żeby zrobić komunikację PC&lt;-&gt;sterownik. Teraz wróciłem do projektu i po przekompilowaniu nowym toolchainem dane w eeprom zmieniły miejsce i konfigurator na PC odmówił współpracy. Stąd moje pytanie o lokalizację czy raczej organizację danych w EEPROM.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=382">perlon</a> — 25 lip 2013, o 20:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-25T19:04:04+01:00</updated>
<published>2013-07-25T19:04:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43346#p43346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43346#p43346"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43346#p43346"><![CDATA[
No ale zaraz masz źródła do programu procka - a ty chcesz robić zrzut EEPROM'a - tzn może czegoś nie mogę zrozumieć ? <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> — 25 lip 2013, o 19:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[perlon]]></name></author>
<updated>2013-07-25T15:56:40+01:00</updated>
<published>2013-07-25T15:56:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43322#p43322</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43322#p43322"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43322#p43322"><![CDATA[
Ano potrzebne jest mi to do tego, że na pececie obrabiam sobie wyciągnięty obraz pamięci EEPROM i potem tą obrobioną zrzutkę chcę wgrać z powrotem do urządzenia. Stąd potrzebna mi jest stałość położenia danych w EEPROM'ie. Wiem, wiem. Mogę to zrzucić na kontroler i wyciągać i wkładać EEPROM np. przez bootloader UARTEM. Tyle że bootloader i właściwy wsad muszą widzieć to samo. A jak mam bootloader napisany po staremu a właściwy HEX po nowemu to będą widziały co innego?. Bootloaderów nie trenowałem i jeszcze tego nie umiem, choć mam w planach ugryzienie tego tematu. Tymczasem mam taki patencik polegający na wyciągnięciu AVRDude'm z procka zawartość EEPROM'a zaczytanie to aplikacji na PC wypluciu z powrotem obrazu EEPORM'a i zapisaniu go AVRDude'm. Może to i skomplikowane ale mi działa tylko że nowy toolchain trochę mi to popsuł.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=382">perlon</a> — 25 lip 2013, o 15:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-25T15:38:19+01:00</updated>
<published>2013-07-25T15:38:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43316#p43316</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43316#p43316"/>
<title type="html"><![CDATA[Re: Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43316#p43316"><![CDATA[
1. można ale lepiej powiedz do czego ci to - bo nie ukrywam że to nieco pozbawione sensu gdy programuje się w C<br /><br />2. zapisują się inaczej , Ba! nawet nie masz gwarancji że po kolejnej kompilacji albo dodaniu jakiejś zmiennej zostanie zachowana lokalizacja wcześniejszych. Od czego to zależy - od optymalizatora (procesów optymalizacji) ... a ty chcesz wrócić do czasów sprzed C gdy nie było optymalizatorów.<br /><br />Na szczęście właśnie programując w C nie trzeba o takich sprawach myśleć i to jest zaleta a nie wada. <br /><br />Myślę, że czas najwyższy kolego obejrzeć dokładnie 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 />i zobaczyć w jaki sposób podchodzi się do EEPROMA w C<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 lip 2013, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[perlon]]></name></author>
<updated>2013-07-25T15:06:57+01:00</updated>
<published>2013-07-25T15:06:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43314#p43314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43314#p43314"/>
<title type="html"><![CDATA[Fizyczna lokalizacja danych w pamięci EEPROM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3658&amp;p=43314#p43314"><![CDATA[
Witam<br />Mam taki oto zestaw do zapisania w EEPROM<br />[syntax=c]#define IN_COUNT 14<br />#define OUT_COUNT 8<br /><br />uint8_t EEMEM nInCount = IN_COUNT;<br />uint8_t EEMEM nOutCount = OUT_COUNT;<br />uint8_t EEMEM aTryby&#91;OUT_COUNT&#93;&#91;IN_COUNT/2&#93;;<br />uint16_t EEMEM aTimeryON&#91;OUT_COUNT&#93;&#91;IN_COUNT&#93;;<br />uint16_t EEMEM aAsynchrOUT&#91;OUT_COUNT&#93;;[/syntax]<br />Gdy projekt miałem skompilowany WinAVR'em nInCount i nOutCount były na początku EEPROM'a. Po kompilacji toolchainem atmela te dane wylądowały na końcu zestawu danych zapisanych w EEPROM. Pomyślałem że może uda mi się wymusić kolejność za pomocą struktury.<br />[syntax=c]typedef struct {<br />uint8_t nInCount;<br />uint8_t nOutCount;<br />uint8_t aTryby&#91;OUT_COUNT&#93;&#91;IN_COUNT/2&#93;;<br />uint16_t aTimeryON&#91;OUT_COUNT&#93;&#91;IN_COUNT&#93;;<br />uint16_t aAsynchrOUT&#91;OUT_COUNT&#93;;<br />} tParametry;<br /><br />tParametry parametry EEMEM;[/syntax]<br />Niestety oglądając plik eep widzę różne zawartości jednej i drugiej deklaracji. <br />Pytania:<br />1. Czy można w języku C wymusić lokalizację zmiennej w pamięci EEPROM.<br />2. Czy dane zapakowane w strukturę zapisują się inaczej niż te zadeklarowane niejako osobno? Raczej tak ale z czego to wynika?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=382">perlon</a> — 25 lip 2013, o 15:06</p><hr />
]]></content>
</entry>
</feed>