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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-09-15T08:42:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=4182&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-09-15T08:42:06+01:00</updated>
<published>2013-09-15T08:42:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4182&amp;p=49639#p49639</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4182&amp;p=49639#p49639"/>
<title type="html"><![CDATA[Re: bSD - obsługa kart pamięci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4182&amp;p=49639#p49639"><![CDATA[
Tak się przyglądam tej bibliotece - hmm ja wprawdzie nie używam takich bibliotek bez obsługi plików ale jak to się mówi &quot;nigdy nie mów nigdy&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> może kiedyś się przyda takie podejście. A dla osób, które wykorzystują takie podejście taka biblioteka na pewno będzie nie lada gratką.<br /><br /><div class="quotetitle">barney napisał(a):</div><div class="quotecontent"><br />I mimo tego, że narobiłem się co nie miara<br /></div><br /><br />Naprawdę widać, że włożyłeś kawał pracy, szacunek ...<br /><br />znalazłem w tym libsie taką konstrukcję:<br /><br />[syntax=c]// While accessing to global variables block interrupts<br />#define ISR_PAUSE(...)<br />{<br />uint8_t do_sei=SREG&amp;(1&lt;&lt;SREG_I);<br />cli();<br />__VA_ARGS__;<br />if (do_sei) sei();<br />}[/syntax]<br /><br />i tak sobie na to patrzę, patrzę przez chwilę - myślę &quot;co to za dziwne podejście&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... przecież zamiast tego (co w środku oczywiście) można to samo zrobić nawet prościej o 4 bajty we flashu bo tu troszkę za dużo operacji:<br /><br />[syntax=c]uint8_t sreg = SREG;<br />cli();<br />__VA_ARGS__;<br />SREG=sreg;[/syntax]<br /><br />Ba można też użyć standardowej biblioteki atomic i użyć:<br /><br /><br />[syntax=c]#include &lt;util/atomic.h&gt;<br /><br />ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {<br />__VA_ARGS__;<br />}[/syntax]<br /><br />ale ... ale jest jedno małe ale , zawsze trzeba wyciągnąć na końcu pozytywny wniosek <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... Uważam, więc i tak, że fajnie że napisałeś to &quot;przedziwne&quot; makro <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Już nawet pal pies, że tam 4 bajty się marnują we Flashu, co to tam znaczy.<br /><br />... ale za to <br /><br />1. pokazałeś fajny i nawet jak dla mnie wygodniejszy sposób na że tak powiem użycie tego mechanizmu do prostych instrukcji, które trzeba traktować atomowo bo piszemy tylko tak:<br /><br />ISR_PAUSE( coś_tam_coś_tam );<br /><br />zamiast nawet tych kilku linii z atomic.h, gdzie trzeba dodatkowo plik inkludować, gdzie trzeba pamiętać te argumenty dla atomic block <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... ja nigdy nie pamiętam i na piechotę robię to sposobem z tym sreg=SREG, który pokazałem wyżej. Zresztą atomic block robi to akurat identycznie.<br /><br />2. pokazany jest tutaj <span style="color: #0040FF">BARDZO CIEKAWY MECHANIZM</span>, którego warto szczególnie pokazać !!! Ja akurat nigdzie go nie omawiałem a w skrócie wygląda on tak:<br /><br />[syntax=c]#define   MACRO( ... ) {<br />      __VA_ARGS__;<br />}[/syntax]<br /><br />gdzie te trzy kropeczki oznaczają możliwość przekazania prawie dowolnych argumentów, hmm nawet całego bloku kodu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> np:<br /><br />[syntax=c]MACRO(<br />PORTB=(PORTB&amp;(~(1&lt;&lt;PB4)))|((5&gt;=1)&lt;&lt;PB4);<br />PORTA = 255;<br />);[/syntax]<br /><br />Być może w gąszczu tej biblioteki umknął by on oczom wielu zainteresowanych, dlatego chciałem zwrócić na to uwagę, bo jest wiele osób, które w dobrych libsach poszukują takich smakowitych &quot;wisienek&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Reasumując, jeszcze raz - kawał roboty <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> — 15 wrz 2013, o 08:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-14T23:17:48+01:00</updated>
<published>2013-09-14T23:17:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4182&amp;p=49628#p49628</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4182&amp;p=49628#p49628"/>
<title type="html"><![CDATA[bSD - obsługa kart pamięci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4182&amp;p=49628#p49628"><![CDATA[
Biblioteka służy do oczytu/zapisu bloków karty SD (nie obsługuje systemu plików).<br /><br />Ważniejsze cechy:<br />- ~4.5kB pamięci FLASH<br />- co najmniej ~550B RAMu<br />- szybkość do 100kB @20MHz<br />- obsługa sum kontrolnych transmisji danych<br />- obsługa kart SD/SDHC/MMC (MMC nietestowane)<br /><br />sd.h zawiera funkcje &quot;cywilne&quot;. Pliki z &quot;user_&quot; w nazwie zawierają funkcje, które są zależne od projektu/platformy sprzętowej.<br /><br />I mimo tego, że narobiłem się co nie miara, to nie wiem co jeszcze napisać <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><br /><br /> <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=973">barney</a> — 14 wrz 2013, o 23:17</p><hr />
]]></content>
</entry>
</feed>