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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8161&amp;mode</id>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2014-10-01T06:30:06+01:00</updated>
<published>2014-10-01T06:30:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97206#p97206</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97206#p97206"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97206#p97206"><![CDATA[
Bo mało kto teraz rozumie, że w pełni naprawione urzadzenie to takie które nie dość, że działa to jeszcze śladu naprawy nie widac. Oczywiście jest też drugie dno - każdy (czy to serwis, czy klient końcowy) szuka oszczędności (czas, pieniądze) i stąd niestety takie kwiatki <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> - kwestię dokładności i solidności poszczególnych serwisantow pomijam. <br /><br />Sent from my mobile.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 1 paź 2014, o 06:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-09-30T19:14:31+01:00</updated>
<published>2014-09-30T19:14:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97145#p97145</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97145#p97145"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97145#p97145"><![CDATA[
Witam,<br /><br /><div class="quotetitle">Intre napisał(a):</div><div class="quotecontent"><br />Wy tam kwiatków szukacie po całym świecie, kwiatki to są czasem na forum <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Kwiatek rewelacja <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Poprawił <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><a href="http://forum.atnel.pl/post97118.html#p97118"  class="postlink">http://forum.atnel.pl/post97118.html#p97118</a><br /><br /><br /><div class="quotetitle">Atmegowiec napisał(a):</div><div class="quotecontent"><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent">Aby ograniczyć prąd należy nieużywane piny podciągnąć lub ustawić jako wyjścia. Wejście pływające (a takie jest po starcie) odbiera sygnały z kosmosu i ciągle się przełącza pobierając energię.<br /></div><br /><br />aktualizowałem pierwszy kod:<br /><br />[syntax=c]DDRB = 8;//ustwienie portu jako wyjscie<br />PORTB = 8;//wszystkie piny podciągniete[/syntax]<br /><br />Jest troche lepiej, pobór prądu spadł do z 83uA do 67uA</div></div><br /><br /> <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <span style="color: #00FF00">!!!MISTRZ!!!</span> <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Nie to,  żebym wyśmiewał początkujących, ale naprawdę kolega jest na forum dość długo, więc taki kwiatek nie powinien mieć miejsca.<br /><br />Chyba, że to ja źle ustawiałem porty :/<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 30 wrz 2014, o 19:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Intre]]></name></author>
<updated>2014-09-30T18:02:19+01:00</updated>
<published>2014-09-30T18:02:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97129#p97129</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97129#p97129"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97129#p97129"><![CDATA[
Wy tam kwiatków szukacie po całym świecie, kwiatki to są czasem na forum <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Kwiatek rewelacja <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Poprawił <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><a href="http://forum.atnel.pl/post97118.html#p97118"  class="postlink">http://forum.atnel.pl/post97118.html#p97118</a><br /><br /><br /><div class="quotetitle">Atmegowiec napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent">Aby ograniczyć prąd należy nieużywane piny podciągnąć lub ustawić jako wyjścia. Wejście pływające (a takie jest po starcie) odbiera sygnały z kosmosu i ciągle się przełącza pobierając energię.<br /></div><br /><br />aktualizowałem pierwszy kod:<br /><br />[syntax=c]DDRB = 8;//ustwienie portu jako wyjscie<br />PORTB = 8;//wszystkie piny podciągniete[/syntax]<br /><br />Jest troche lepiej, pobór prądu spadł do z 83uA do 67uA</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1356">Intre</a> — 30 wrz 2014, o 18:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2014-09-30T14:45:36+01:00</updated>
<published>2014-09-30T14:45:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97098#p97098</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97098#p97098"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=97098#p97098"><![CDATA[
Heh.<br />Pracowałem spory kawałek czasu w autoryzowanym serwisie Panasonic/Techics oraz Sony i kilku mniej znanych firm.<br />Zdarzało mi się poprawiać naprawy po moich &quot;kolegach&quot; z innych też autoryzowanych serwisów i powiem Ci, że to nie jest wcale takie rzadkie i wcale nie aż taki potworek.<br />Żeby nie udawać świętego zdarzyło mi się kilka razy upalić ścieżkę i połączyć ją za pomocą srebrzanki - wszystko zależy od producenta i jego serwisu centralnego. Jeśli miałbym zapłacić za naprawiany moduł (np. w Sony) to wolałem &quot;odwalić fuchę&quot;. W Panasonicu np. było inaczej - dzwoniłem do SC i musiałem się owszem wytłumaczyć co &quot;sp.....&quot;, ale dostawałem nowy moduł i naprawa była przeprowadzana profesjonalnie.<br />Co prawda było to z 15 lat temu, ale obawiam się, że poprzez spadek cen elektroniki sytuacja może być teraz jeszcze gorsza  <img src="https://forum.atnel.pl/images/smilies/icon_cry.gif" alt=":cry:" title="Płacze" />.<br /><br />-- <br />Grzegorz...<br /><br /><div class="quotetitle">doman89 napisał(a):</div><div class="quotecontent"><br />Witam,<br /><br />Panowie a co powiecie na paskudztwo hardwarowe?? Oto fotka naprawy dokonanej przez producenta urządzenia (naprawa na gwarancji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />)<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3271/cd2c5d1ff4dd49fabcc728f764fb9eaf.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3271/cd2c5d1ff4dd49fabcc728f764fb9eaf.JPG" alt="Obrazek" /></a><br /><br />Tak więc serwis producenta nie gwarantuje jakości dokonanej naprawy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 30 wrz 2014, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-09-21T23:55:50+01:00</updated>
<published>2014-09-21T23:55:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=96305#p96305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=96305#p96305"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=96305#p96305"><![CDATA[
Witam,<br /><br />Panowie a co powiecie na paskudztwo hardwarowe?? Oto fotka naprawy dokonanej przez producenta urządzenia (naprawa na gwarancji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />)<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3271/cd2c5d1ff4dd49fabcc728f764fb9eaf.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3271/cd2c5d1ff4dd49fabcc728f764fb9eaf.JPG" alt="Obrazek" /></a><br /><br />Tak więc serwis producenta nie gwarantuje jakości dokonanej naprawy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 21 wrz 2014, o 23:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-01T18:41:02+01:00</updated>
<published>2014-09-01T18:41:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93863#p93863</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93863#p93863"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93863#p93863"><![CDATA[
a no to czyli jednak &quot;coś&quot; w tym jest <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 wrz 2014, o 18:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-01T15:34:16+01:00</updated>
<published>2014-09-01T15:34:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93841#p93841</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93841#p93841"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93841#p93841"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />dla transmisji MIDI jest to 31.25 kbaud<br /></div><br /><br />tak odrywając się od tematu - na chwilkę (sorki) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zawsze mnie dziwi po jakiego grzyba ktoś kto tworzył to całe kocie midi - zastosował tak koci baudrate ? <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> .... tzn może jest jakieś uzasadnienie tego ? ale ja go nie znam ... może wy coś wiecie ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 wrz 2014, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-09-01T07:59:19+01:00</updated>
<published>2014-09-01T07:59:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93811#p93811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93811#p93811"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93811#p93811"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />Bo w życiu potrzeba trochę magii? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Przecież czytelnie to jest tak prostacko trywialne... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /></div><br />Taak, z pewnością o to chodziło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /><br /><div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />automatyczne wyliczanie baudrate i UBRR dla nietypowych F_CPU oraz nietypowych baudrate ma sens<br /></div><br />A &lt;util/setbaud.h&gt; tego nie robi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 1 wrz 2014, o 07:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jado]]></name></author>
<updated>2014-08-31T22:09:31+01:00</updated>
<published>2014-08-31T22:09:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93781#p93781</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93781#p93781"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93781#p93781"><![CDATA[
Chyba nie jest tak źle z tą czytelnością - komentarze ułatwiają zrozumienie poszczególnych operacji.  <br />Jeśliby ktoś chciał uniknąć ciągłego zaglądania do datasheetu , to może zamieścić w komentarzach dodatkowe informacje np. wzory opisujące obliczanie baudrate'u, itp...<br />Ale w sumie takie makro czy zestaw makr po jednorazowym napisaniu, będzie raczej tylko używane niż analizowane za każdym razem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" />  <br /><br />Ciekawsze może być pytanie, czy dane makro jest słuszne dla wszystkich możliwych przypadków jakie mogą legalnie wystąpić.<br />I tutaj im większa złożoność makra tym trudniej o ocenę tej poprawności.  A jeśli ufamy makru, a ono daje błędny wynik, to znalezienie tego błędu może być trudne - i sytuacja ta cofnie nas do ponownej i wnikliwej analizy datasheetu. <br /><br />Przy okazji warto wspomnieć tutaj o generatorach kodu, które generują kod inicjalizacyjny w/g reguł w nich zawartych (na podstawie datasheetu), zwalniają programistę od myślenia, dbają o poprawność zakresów wprowadzanych danych i otrzymanych wyników.  Spełniają tą samą rolę co makra - choć zaszytych w nich reguł nie widzimy. <br />Otrzymany kod będzie w postaci hexopodobnej - czyli nieczytelnej, bez analizy datasheetu i rejestrów.<br /><br />Tak czy inaczej trzeba sobie jakoś ułatwiać życie (lub robi to ktoś za nas) <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=852">Jado</a> — 31 sie 2014, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jado]]></name></author>
<updated>2014-08-31T19:55:08+01:00</updated>
<published>2014-08-31T19:55:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93762#p93762</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93762#p93762"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93762#p93762"><![CDATA[
Najważniejsze to żeby nie popadać w skrajności - umiejętnie stosowane makra są dodatkowym elementem zwiększającym wachlarz możliwości programisty - jak zresztą wszelkie inne właściwości danego języka programowania.<br />Jedni stosują wartości wyrażone wprost w hex, uważając, że &quot;każdy doczyta sobie wszystko bezpośrednio z datasheetu&quot;, inni próbują robić programy &quot;samomyślące&quot;, mające w założeniu zwalniać z myślenia programistę i wyłapywać jego błędy (np. zakres wprowadzonych wartości, itp).<br />Pytanie: &quot;Gdzie leży granica rozsądku pomiędzy jedną a drugą opcją?&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> <br />Podejrzewam, że każdy pisze programy tak jak mu własna wiedza i umiejętności na to pozwalają - jednym lepiej leżą makra i dobrze je rozumieją, inni wolą używać struktur, wskaźników, procedur i ich zagnieżdżeń. <br />Jak się pisze dla siebie, to nie ma większego problemu - problem pojawia się wtedy, kiedy mają się skomunikować ze sobą miłośnicy różnych stylów programowania <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=852">Jado</a> — 31 sie 2014, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-08-31T15:54:34+01:00</updated>
<published>2014-08-31T15:54:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93695#p93695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93695#p93695"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=93695#p93695"><![CDATA[
Hahaha! Właśnie znalazłem małe poskudztwo w swoich własnych wypocinach. <br />Jest sobie mniej więcej taka tablica (wypełniana dynamicznie ale to nieważne):<br /><br />[syntax=c]char * tablica&#91;&#93; = { &quot;pierwszy&quot;, &quot;drugi&quot;, &quot;trzeci&quot;, NULL };[/syntax]<br /><br />i teraz:<br /><br />[syntax=c]uint8_t n = 0;<br />for(char* i = tablica&#91;n&#93;; i = tablica&#91;n&#93;; n++)<br />{<br />uart_uint(n);<br />...<br />uart_puts(i);<br />...<br />}[/syntax]<br /><br />Czemu tak to nasmarowałem? Hmmmm...  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 31 sie 2014, o 15:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-22T21:12:23+01:00</updated>
<published>2014-08-22T21:12:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92508#p92508</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92508#p92508"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92508#p92508"><![CDATA[
<div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Można dać coś w stylu:<br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br />while(!((*(volatile uint8_t *)(0x56)) &amp; 0x40));                // Wait until overflow<br />GeSHi<br /><br />żeby było czytelniej<br /></div><br /><br />No to jest naprawdę mega miodne paskudztwo <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> hahaha dobre dobre - żeby było czytelniej <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 sie 2014, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sonix]]></name></author>
<updated>2014-08-22T20:55:40+01:00</updated>
<published>2014-08-22T20:55:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92504#p92504</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92504#p92504"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92504#p92504"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />........Może cały ten wątek poświęcić ,,paskudztwom&quot;? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /></div><br /><br />Właśnie przez takie &quot;paskudztwa&quot; odrzuca mnie od C  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Nawet te w 'prostszym' wydaniu  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=127">Sonix</a> — 22 sie 2014, o 20:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-08-22T20:03:21+01:00</updated>
<published>2014-08-22T20:03:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92497#p92497</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92497#p92497"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92497#p92497"><![CDATA[
<div class="quotetitle">programek napisał(a):</div><div class="quotecontent"><br />Co o tym myślicie?<br /></div><br />Bardzo fajne. A na kwarcu 20MHz i Atmedze644PA też będzie działać?<br />Zamiast:<br />[syntax=c]while(!(TIFR &amp; 0x40));                // Wait until overflow[/syntax]<br />Można dać coś w stylu:<br />[syntax=c]while(!((*(volatile uint8_t *)(0x56)) &amp; 0x40));                // Wait until overflow[/syntax]<br />żeby było czytelniej  <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=465">Krauser</a> — 22 sie 2014, o 20:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-08-22T18:52:57+01:00</updated>
<published>2014-08-22T18:52:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92483#p92483</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92483#p92483"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92483#p92483"><![CDATA[
a ja przed chwilą w necie znalazłem &quot;fajny&quot; zamiennik dla funkcji  _delay_us:<br /><br />[syntax=c]#include &lt;avr/io.h&gt; <br />void Wait_us(unsigned char  TimeToWait) <br />{ <br />        TCCR2=0;                                        // Stop Timer 2 <br />        TCNT2=0xFF - TimeToWait;        // Set Timer 2 <br />        TIFR |= (1&lt;&lt; TOV2);                        // Clr Overflow Flag <br />        TCCR2=(1&lt;&lt;CS21);                        // Set Timer 2 = MCLK / 8 =&gt; 1µs / Tick <br />        while(!(TIFR &amp; 0x40));                // Wait until overflow <br />        TCCR2=0;                                        // Stop Timer 2 <br />} <br />void main(void) <br />{ <br />        Wait_us(10); <br />}[/syntax]<br />Co o tym myślicie? <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=1526">programek</a> — 22 sie 2014, o 18:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PROTON]]></name></author>
<updated>2014-08-22T18:28:38+01:00</updated>
<published>2014-08-22T18:28:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92474#p92474</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92474#p92474"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92474#p92474"><![CDATA[
[syntax=c]#defineLD_WORD(ptr)(WORD)(*(WORD*)(BYTE*)(ptr))[/syntax]<br /><br />Zwraca wskaźnik który jest rzutowany na zmienną word.<br /><br />[syntax=c]#defineST_DWORD(ptr,val)*(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)&gt;&gt;8); *(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)&gt;&gt;16); *(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)&gt;&gt;24)[/syntax]<br /><br />To makro zapisuje 4 bajty wartości val pod wskaźnikiem ptr, łatwiej będzie zrozumieć jak zapiszę to tak:<br /><br />[syntax=c]#defineST_DWORD(ptr,val)<br /><br />*(BYTE*)(ptr)=(BYTE)(val); <br />*(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)&gt;&gt;8); <br />*(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)&gt;&gt;16); <br />*(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)&gt;&gt;24)[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1315">PROTON</a> — 22 sie 2014, o 18:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-08-22T18:16:31+01:00</updated>
<published>2014-08-22T18:16:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92472#p92472</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92472#p92472"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=92472#p92472"><![CDATA[
A mógłby ktoś wytłumaczyć co to &quot;paskudztwo&quot; robi i do czego służy?<br />[syntax=c]#defineLD_WORD(ptr)(WORD)(*(WORD*)(BYTE*)(ptr))[/syntax]<br /><br />W tej samej bibliotece znalazłem jeszcze takie coś<br />[syntax=c]#defineST_DWORD(ptr,val)*(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)&gt;&gt;8); *(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)&gt;&gt;16); *(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)&gt;&gt;24)[/syntax]<br />Co dla mnie jest już totalną czarną magią.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 22 sie 2014, o 18:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-08-17T21:25:54+01:00</updated>
<published>2014-08-17T21:25:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91830#p91830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91830#p91830"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91830#p91830"><![CDATA[
Widziałem coś podobnego w popularnej bibliotece FatFS z elm-chan.org. Ciężkie do zrozumienia nie tylko przez czowieka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> bo kompilator wywala błąd pt. &quot;dereferencing type-punned pointer will break strict-aliasing rules&quot;<br /><br />[syntax=c]/* This type MUST be 8 bit */<br />typedef unsigned charBYTE;<br />.....<br />/* These types MUST be 16 bit */<br />typedef unsigned shortWORD;<br /><br />....<br /><br />#defineLD_WORD(ptr)(WORD)(*(WORD*)(BYTE*)(ptr))<br />...[/syntax]<br /><br />potem w jakiejś funkcji<br /><br />[syntax=c]DWORD get_fat (  ...    )<br />{<br />...<br />BYTE *p;<br /><br />....<br />return LD_WORD(p);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 17 sie 2014, o 21:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JanuszT]]></name></author>
<updated>2014-08-17T14:45:18+01:00</updated>
<published>2014-08-17T14:45:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91779#p91779</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91779#p91779"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91779#p91779"><![CDATA[
Witam<br /><br />Bardzo dziękuję. Ze wskaźnikami nieśmiało zaczynam się oswajać  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> , stąd moje prośba o wyjaśnienia i podanie wersji po korekcie.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4367">JanuszT</a> — 17 sie 2014, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-08-17T11:52:52+01:00</updated>
<published>2014-08-17T11:52:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91766#p91766</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91766#p91766"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91766#p91766"><![CDATA[
Witam,<br /><br />Stosować nie zamierzam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Ale jak przyjdzie kiedyś zmierzyć się z takim &quot;kwiatkiem&quot; na czyimś kodzie, to można wtedy sobie poprawić. Jak to pan Grębosz napisał, co prawda w stosunku do książek, ale można to również zastosować do kodu. Można podzielić kody na 2 rodzaje:<br />1. Spójrz jakie to proste,<br />2. Spójrz jaki to ja jestem mądry.<br /><br />Myślę, że ten &quot;kwiatek&quot; można zaliczyć do tej 2 grupy.<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 17 sie 2014, o 11:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-08-17T11:08:55+01:00</updated>
<published>2014-08-17T11:08:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91760#p91760</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91760#p91760"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91760#p91760"><![CDATA[
Witam,<br /><br />Jako początkujący programista staram się rozkminić, w jaki sposób autor sobie wyobrażał tą operację. Myślę, że przyda się taki trening na przyszłość <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />A więc czy dobrze rozumuje:<br />1. Pobieramy początek adresu tablicy value i taktujemy ją przez rzutowanie jako zmienną 32 bitową (jako, że 4 liczby 8 bitowe).<br />2. Przypisujemy wartości wskazujące przez wskaźnik (znów 4 zmienne 8 bitowe poprzez rzutowanie na uint32_t).<br /><br />Mam nadzieję, że dobrze to zrozumiałem <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 17 sie 2014, o 11:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-17T08:32:53+01:00</updated>
<published>2014-08-17T08:32:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91755#p91755</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91755#p91755"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91755#p91755"><![CDATA[
Moim zdaniem ... &quot;ładny&quot; kwiatek <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><br />nie wiem czy pierwotnie był to jakiś kod na PC czy może na ARM ... nie wiem jak tam się to kompiluje do ASM i pewnie też nie w każdym przypadku tak samo bo zależnie od kontekstu tego co jest obok w programie .... nie mniej jednak dzięki takim &quot;KWIATKOM&quot; wielu ludzi albo nie lubi języka C albo bardzo długo nie może go zaskoczyć <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... sam tak miałem ... gdy kiedyś dawno temu na ele... zapytałem o jakąś tego typu operację na wskaźnikach i wpadł pewien gości wpisał właśnie coś w tym stylu ... czyli sporo nawiasów, gwiazdek, typów hahaha <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> i powiedział krótko - &quot;tak możesz to zrobić&quot; bez dodatkowego słowa wyjaśnienia a próby dopytania go o jakieś detale spełzały na niczym. Później kilka innych osób próbowało rozgryzać ten kod - ba nawet uznali że fajny bo powinien działać ... aż po jakimś czasie jak to na forum, wpadł jeszcze ktoś, kto pokazał że tam jest mały błąd i to nie będzie działać - wyjaśnił gdzie błąd ale nie podał alternatywnego rozwiązania. Ja oczywiście wtedy patrzyłem na to wszystko jak SROKA W KOŚĆ, i tak z kodu nawet nie próbowałem skorzystać bo kompletnie nie wiedziałem o co chodzi ... przez te gwiazdki, ptaszki, krzaczki ...<br /><br />Tutaj .... hmmm owszem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> potraktowałbym to jako fajną zagadkę/łamigłówkę (wręcz na jakiś konkurs dla początkujących ambitnych osób, które starają się uczyć bardziej zaawansowanych działań na wskaźnikach) bo do tego ten przykład się chyba naprawdę fajnie nadaje. Więc jeśli masz panie kolego mokrowski jeszcze więcej takich kwiatków (sadzonek) to pokaż <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Po co tyle o tym piszę ? .. bo w AVR GCC praktycznie prawie nie będzie różnicy pomiędzy kwiatkiem /* Fast copy */ czyli:<br /><br />[syntax=c]*((uint32_t *) value) = *((uint32_t *) str);[/syntax]<br /><br />a alternatywnym i myślę, że dużo bardziej przejrzystym hmm normalnym kopiowaniem:<br /><br />[syntax=c]memcpy( str, value, 4 );[/syntax]<br /><br />dzięki któremu na dodatek możemy kopiować równie szybko dowolną ilość bajtów a nie tylko taką narzuconą przez rozmiar typu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Ale też wiadomo, że czasem w pewnych kontekstach kompilacji AVR GCC zoptymalizuje tu nieco lepiej kod i oszczędzi nam czasem kilka bajtów Flash a co za tym idzie i na szybkości pewnie zyskamy kilkanaście taktów zegara .... Będzie jednak też tak czasem, że np w ogóle nie zaoszczędzi ... poniżej przykład jak w ASM realizowane są czasem takie dwa różne sposoby - (asembler z pliku *.lss po końpilacji) To oczywiście bzdurny przykład - bo w pustym main.c tylko taka jedna linijka na dwa sposoby - ale pokaże to jak się generuje czasem kod i że różnie dla dwóch sposobów:<br /><br />najpierw /* Fast copy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> */<br />[syntax=asm]9a:80 81       ldr24, Z<br />  9c:91 81       lddr25, Z+1; 0x01<br />  9e:a2 81       lddr26, Z+2; 0x02<br />  a0:b3 81       lddr27, Z+3; 0x03<br />  a2:80 93 60 00 sts0x0060, r24<br />  a6:90 93 61 00 sts0x0061, r25<br />  aa:a0 93 62 00 sts0x0062, r26<br />  ae:b0 93 63 00 sts0x0063, r27[/syntax]<br /><br /><br />a teraz ten z memcpy()<br />[syntax=c]9a:80 91 60 00 ldsr24, 0x0060<br />  9e:90 91 61 00 ldsr25, 0x0061<br />  a2:a0 91 62 00 ldsr26, 0x0062<br />  a6:b0 91 63 00 ldsr27, 0x0063<br />  aa:80 83       stZ, r24<br />  ac:91 83       stdZ+1, r25; 0x01<br />  ae:a2 83       stdZ+2, r26; 0x02<br />  b0:b3 83       stdZ+3, r27; 0x03[/syntax]<br /><br />Jak widać - mała kosmetyczna zmiana w ASM i tutaj akurat oba sposoby nie różnią się zajętością Flash (ale zaznaczam to taki prymitywny i tylko obrazowy przykład) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale właśnie czy pisząc normalny kod w C potrzebne nam jest kilkanaście taktów zegara ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... No zaraz znajdą się ludzie co powiedzą, że tak - sam nawet bym powiedział, że gdyby chcieć coś robić w przerwaniu, gdzie zależy nam akurat na każdym takcie zegara ... to niby ok ? Choć tu też trzeba wziąć pod uwagę to, że kompilator i przy zmianach z wersji na wersję, i w zależności od kontekstu kodu może dawać różne wyniki jeśli chodzi o tą oszczędność taktów, zatem raz może to być oszczędność (strzelam) 8 taktów innym razem 12 taktów. A to już może i często tak jest że nawet w nieświadomy sposób dla osoby, która nie zna takich zależności ... spowoduje niejednokrotnie więcej kłopotów niż korzyści ....<br /><br />Pomijam już to o co zwykle staramy się dbać w kodzie - czyli jego czytelność ..... i przejrzystość ... <br /><br />Ale to tylko takie moje luźne uwagi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 sie 2014, o 08:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JanuszT]]></name></author>
<updated>2014-08-17T07:52:27+01:00</updated>
<published>2014-08-17T07:52:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91753#p91753</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91753#p91753"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91753#p91753"><![CDATA[
Witam<br />Możesz podać wersję po Twojej korekcie?<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4367">JanuszT</a> — 17 sie 2014, o 07:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[j23]]></name></author>
<updated>2014-08-17T01:27:32+01:00</updated>
<published>2014-08-17T01:27:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91750#p91750</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91750#p91750"/>
<title type="html"><![CDATA[Re: Paskudztwo...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8161&amp;p=91750#p91750"><![CDATA[
Może to jest odpowiedź dlaczego ciągle wzrasta zapotrzebowanie na pamięć RAM/Cache? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> -a tak bardziej na poważnie to rzeczywiście niepotrzebnie aż tak zamotany kawałek kodu. No i czy naprawdę aż tak szybki? Pamięciożerny napewno. Podobne &quot;kwiatki&quot; widziałem i widuję dość często w kodzie javascrpitu (zafuskowanym -masakra). Czasami mi się wydaje, że NIEKTÓRZY obecni &quot;naukowcy&quot; niepotrzebnie komplikują sobie i innym życie, a potem jak co do czego to ktoś na czymś takim jak kolega przedstawił musi usiąść i trochę się pomęczyć.<br />Pozdrawiam! O kurcze... Już po 2:00 <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=4504">j23</a> — 17 sie 2014, o 01:27</p><hr />
]]></content>
</entry>
</feed>