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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-02-05T18:48:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10494&amp;mode</id>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-02-05T18:48:41+01:00</updated>
<published>2015-02-05T18:48:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117401#p117401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117401#p117401"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117401#p117401"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Panowieeeee , Dziękuję ! <br />Szczerze, to sam bym do tego nie doszedł... <br />Podłączyłem AVCC bezpośrednio do VCC i nadal było to samo dopiero po dołożeniu Kondensatora do GND rozwiązało sprawę. <br /><br />Jeszcze raz Dzięki  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br /><br />No i najważniejsze, że rozwiązane.<br />Tak na przyszłość to na prawdę warto zapoznać się z takimi podstawami jak zasilanie, filtrowanie, reset, itp., itd. poprzez czytanie czy też oglądanie poradników (i to nie tylko czytanie i oglądanie Mirka, ale też innych).<br />Potem to już tylko pozostaje kodować <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 5 lut 2015, o 18:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-02-05T18:18:22+01:00</updated>
<published>2015-02-05T18:18:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117394#p117394</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117394#p117394"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117394#p117394"><![CDATA[
Panowieeeee , Dziękuję ! <br />Szczerze, to sam bym do tego nie doszedł... <br />Podłączyłem AVCC bezpośrednio do VCC i nadal było to samo dopiero po dołożeniu Kondensatora do GND rozwiązało sprawę. <br /><br />Jeszcze raz Dzięki  <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=903">Morcinek92</a> — 5 lut 2015, o 18:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2015-02-05T15:03:30+01:00</updated>
<published>2015-02-05T15:03:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117365#p117365</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117365#p117365"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117365#p117365"><![CDATA[
Może, jednak pełna dokumentacja pozwoli wyeliminować ewentualne błędy w schemacie i PCB. Wtedy pozostaną ew. błędy montażowe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 5 lut 2015, o 15:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-02-05T08:21:44+01:00</updated>
<published>2015-02-05T08:21:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117301#p117301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117301#p117301"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117301#p117301"><![CDATA[
<div class="quotetitle">krish napisał(a):</div><div class="quotecontent"><br />Widzę jeszcze podejrzane miejsce -pin5 VCC -brak połączenia z zasilaniem Vcc?<br />Zamieść najlepiej prawdziwe pliki: schematu i PCB z których była wykonywana płytka,<br /> bo ze zdjęć nie można ogarnąć tematu.<br /></div><br /><br />Na schemacie jest więc pewnie kolega pod uC połączył.<br />A na podłączenie AVCC naprowadzałem go aby sam zauważył <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 5 lut 2015, o 08:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2015-02-04T22:41:21+01:00</updated>
<published>2015-02-04T22:41:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117275#p117275</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117275#p117275"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117275#p117275"><![CDATA[
Widzę jeszcze podejrzane miejsce -pin5 VCC -brak połączenia z zasilaniem Vcc?<br />Zamieść najlepiej prawdziwe pliki: schematu i PCB z których była wykonywana płytka,<br /> bo ze zdjęć nie można ogarnąć tematu.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2273/1514061824a9875b2f615776e13150bf.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2273/1514061824a9875b2f615776e13150bf.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 4 lut 2015, o 22:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-02-04T21:34:47+01:00</updated>
<published>2015-02-04T21:34:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117264#p117264</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117264#p117264"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117264#p117264"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />AVCC mam podłączone do +5V sprawdziłem to .<br /></div><br /><br />No no - to szkoda że tak samo nie podłączyłeś jeszcze VCC &quot;przez&quot; kondensator ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 lut 2015, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[giciors]]></name></author>
<updated>2015-02-04T21:23:15+01:00</updated>
<published>2015-02-04T21:23:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117260#p117260</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117260#p117260"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117260#p117260"><![CDATA[
To fakt w sumie to masz podłączone do AVCC ...nic ...minus. Kondensator przez chwilę przewodził prąd potem się naładował i koniec.......  prądu..... nie szeregowo tyko do GND i  AVCC jak już , a możesz go zrobić np. tak<br /><a href="http://forum.atnel.pl/_obrazki/o/1818/4a7bf7222740f12c65c68fd132b4b6c5.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1818/4a7bf7222740f12c65c68fd132b4b6c5.jpg" alt="Obrazek" /></a><br /> A i nie wiem czy elektrolity C3 i C4 nie powinny być w drugą stronę + do procka, ale tego nie jestem pewny.<br />Pozdrawiam<br /><br /><br /><br />Sorki widze że kolega już wyprzedził mnie zamieszczając to samo wytłumaczenie.....sorki za nieuwagę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1818">giciors</a> — 4 lut 2015, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2015-02-04T21:22:26+01:00</updated>
<published>2015-02-04T21:22:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117259#p117259</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117259#p117259"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117259#p117259"><![CDATA[
Przecież na schemacie VCC jest właśnie +5V. Zobacz, VCC jest jako wyjście ze stabilizatora 7805. Chyba, że ja coś źle odczytuje to przepraszam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 4 lut 2015, o 21:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2015-02-04T20:52:00+01:00</updated>
<published>2015-02-04T20:52:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117254#p117254</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117254#p117254"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117254#p117254"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />AVCC mam podłączone do +5V sprawdziłem to .<br /></div><br /><br />Jak dobrze widzę to na schemacie i fizycznie na płytce masz podpięte do VCC ale przez kondensator szeregowo.<br /><br />No chyba że masz jakąś przeplotkę i tego nie widać.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 21 minutach ]</span></strong><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/930/2e174bb8baca1263c582129517318f55.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/930/2e174bb8baca1263c582129517318f55.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 4 lut 2015, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-02-04T18:15:33+01:00</updated>
<published>2015-02-04T18:15:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117200#p117200</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117200#p117200"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117200#p117200"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />AVCC mam podłączone do +5V sprawdziłem to . <br /><br />Dodałem dławik oraz kondensator elek. 10uF bo taki miałem najmniejszy i nadal jest to samo, może ciut lepiej ale nie dużo... Eh.... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /></div><br /><br />Upierasz się odnośnie podłączenia AVCC do +5V?<br />Czy AVCC masz podłączone do VCC tak jak na schemacie?<br />Jeśli tak to się przyjrzyj temu i może znajdziesz błąd: <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/04/mikrokontroler-prawidowe-zasilanie.html" >http://mirekk36.blogspot.com/2012/04/mi ... lanie.html</a><!-- m --><br />Podpowiem delikatnie - chodzi o podłączenie C2, będzie Ci łatwiej znaleźć błąd.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 4 lut 2015, o 18:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-02-03T21:36:26+01:00</updated>
<published>2015-02-03T21:36:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117084#p117084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117084#p117084"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117084#p117084"><![CDATA[
AVCC mam podłączone do +5V sprawdziłem to . <br /><br />Dodałem dławik oraz kondensator elek. 10uF bo taki miałem najmniejszy i nadal jest to samo, może ciut lepiej ale nie dużo... Eh.... <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=903">Morcinek92</a> — 3 lut 2015, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2015-02-03T21:22:55+01:00</updated>
<published>2015-02-03T21:22:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117079#p117079</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117079#p117079"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117079#p117079"><![CDATA[
Dla mnie brzmi to jakby duch R2D2 wszedł w Twój układ.<br />Masz trochę słabe filtrowanie zasilania układu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 3 lut 2015, o 21:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-02-03T21:15:56+01:00</updated>
<published>2015-02-03T21:15:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117076#p117076</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117076#p117076"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117076#p117076"><![CDATA[
<div class="quotetitle">krish napisał(a):</div><div class="quotecontent"><br />nie połączone AVcc do zasilania +5V.<br /></div><br />Mam nadzieję, że autor zrobił to przez jakieś roztargnienie - bo jeśli nie ... to .... eeeeeeś <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> — 3 lut 2015, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[vaffanculo]]></name></author>
<updated>2015-02-03T21:14:37+01:00</updated>
<published>2015-02-03T21:14:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117075#p117075</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117075#p117075"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117075#p117075"><![CDATA[
Podłącz AVCC przez dławik osiowy do VCC oraz kondensator 1uF do AGND<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1784">vaffanculo</a> — 3 lut 2015, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DareckiS]]></name></author>
<updated>2015-02-03T21:08:41+01:00</updated>
<published>2015-02-03T21:08:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117071#p117071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117071#p117071"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117071#p117071"><![CDATA[
Mam wrażenie że się resetuje. hm...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1184">DareckiS</a> — 3 lut 2015, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2015-02-03T20:50:27+01:00</updated>
<published>2015-02-03T20:50:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117069#p117069</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117069#p117069"/>
<title type="html"><![CDATA[Re: Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117069#p117069"><![CDATA[
nie połączone AVcc do zasilania +5V.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 3 lut 2015, o 20:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-02-03T20:43:41+01:00</updated>
<published>2015-02-03T20:43:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117067#p117067</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117067#p117067"/>
<title type="html"><![CDATA[Problem - NIe mam pojęcia jak go ugryść ...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10494&amp;p=117067#p117067"><![CDATA[
Witam, <br /><br />Zrobiłem układ na Atmedze32. Miał za zadanie odtwarzać jeden dźwięk z karty SD i dodatkowo miały mrugać dwie diody LED. <br />Program wziąłem z GB, i minimalnie przerobiłem tzn. wyrzuciłem wyświetlacz LCD. Wszystko testowałem na zestawie ATB i działa elegancko, zrobiłem docelową płytkę i pojawiły się problemy... no ale po paru próbach udało się uruchomiłem ale z takim efektem... <br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />NIe wiem czego to może być wina, taktowanie jest prawidłowe 20Mhz, układ jest identyczny jak na zestawie ATB a nie chce prawidłowo działąć FUSE BITY są tak samo ustawione... <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/903/550458efc3a2f4d85051ab252430324d.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/903/550458efc3a2f4d85051ab252430324d.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/903/baa22681b5ea06703fdfbff76f1ebf73.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/903/baa22681b5ea06703fdfbff76f1ebf73.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/903/b06382809176483142fd6e59abdb4a0c.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/903/b06382809176483142fd6e59abdb4a0c.png" alt="Obrazek" /></a> <br /><br />[syntax=c]/*<br /> * main.cF_CPU = 20MHz<br /> *<br /> *  Created on: 2011-11-11<br /> *       Autor: Mirosław Kardaś<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;stdio.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#include &quot;PetitFS/diskio.h&quot;<br />#include &quot;PetitFS/pff.h&quot;<br /><br /><br />#define SD_ON PORTB &amp;= ~(1&lt;&lt;PB1)<br />#define SD_OFF PORTB |= (1&lt;&lt;PB1)<br /><br />#define SD_SLOT_EMPTY (PINB &amp; (1&lt;&lt;PB3))<br /><br />//--------------------------------------------------------------------------------------------------------<br />/*<br /> *   jeśli chcemy uzyskać możliwość odtwarzania plików WAV 16-bit z samplerate = 44,1kHz<br /> *   należy koniecznie zmienić:<br /> *<br /> *   1. zmienić zewnętrzny rezonator kwarcowy na 24MHz lub większy (nie zapomnieć o Fusebicie CKOPT!!!)<br /> *   2. zmienić poniższy parametr z 0 na 1<br /> *   3. przekompilować całość z opcją CLEAN<br /> *<br /> *   wyłączona zostanie obsługa informacji na LCD w trakcie odtwarzania a także efekty dźwiękowe<br /> */<br />#define USE44KHZ 0// 0 = pliki max 22,050kHz,    1 = pliki max 44,1kHz<br />//--------------------------------------------------------------------------------------------------------<br /><br />// obsługa Timer0 z preskalerem = 8<br />#define TMR_START TCCR0 |= (1&lt;&lt;CS01)<br />#define TMR_STOP TCCR0 &amp;= ~(1&lt;&lt;CS01)<br />// obsługa Timer0 z preskalerem = 64<br />#define TMR64_START TCCR0 |= (1&lt;&lt;CS01)|(1&lt;&lt;CS00)<br />#define TMR64_STOP TCCR0 &amp;= ~((1&lt;&lt;CS01)|(1&lt;&lt;CS00))<br /><br />//*************** makra i zmienne na potrzeby obsługi PetitFAT<br />// proszę pamiętać także o zmianie tych wartości w pliku mmc.c !!!!<br />#define SCK PB7<br />#define MOSI PB5<br />#define MISO PB6<br />#define CS PB4<br /><br />#define FCC(c1,c2,c3,c4)(((DWORD)c4&lt;&lt;24)+((DWORD)c3&lt;&lt;16)+((WORD)c2&lt;&lt;8)+(BYTE)c1)/* FourCC */<br /><br /><br />#define LED_PIN1 (1&lt;&lt;PD1)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON1 PORTD |= LED_PIN1// makrodefinicja – załączenie diody<br />#define LED_OFF1 PORTD &amp;= ~LED_PIN1// makrodefinicja – wyłączenie diody<br />#define LED_TOG1 PORTD ^= LED_PIN1// makrodefinicja – zmiana stanu diody<br /><br />#define LED_PIN2 (1&lt;&lt;PD0)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON2 PORTD |= LED_PIN2// makrodefinicja – załączenie diody<br />#define LED_OFF2 PORTD &amp;= ~LED_PIN2// makrodefinicja – wyłączenie diody<br />#define LED_TOG2 PORTD ^= LED_PIN2// makrodefinicja – zmiana stanu diody<br /><br />// definicja struktury z parametrami WAV<br />typedef struct {<br />uint8_t stereo:1;<br />uint8_t prescaler:1;<br />uint8_t resolution;<br />uint16_t khz;<br />} _FLAGS;<br /><br />volatile _FLAGS FLAGS;// definicja struktury<br /><br />volatile uint8_t can_read;<br /><br />FATFS Fs;/* File system object */<br />DIR Dir;/* Directory object */<br />FILINFO Fno;/* File information */<br /><br />WORD rb;<br /><br />static DWORD load_header (void);<br />static UINT play ( const char *fn );<br />// ******************************************************<br /><br />volatile uint16_t tick;// potrzebne do wyświetlania czasu utworu<br />volatile uint8_t slupek;// do obsługi wskaźnika wysterowania<br /><br />volatile int8_t sk1=-1, sk2=4;// zmienne pomocnicze do efektów dźwiękowych<br /><br />#define BUF_SIZE 512// maksymalny rozmiar pojedynczego bufora<br /><br />uint8_t  buf&#91;2&#93;&#91;BUF_SIZE&#93;;// podwójny bufor do odczytu z karty SD<br /><br />volatile uint8_t nr_buf;// indeks aktywnego buforu<br /><br />uint8_t cplay&#91;&#93; = {8,12,14,15,15,14,12,8};<br />uint8_t cnext&#91;&#93; = {32,20,10,5,5,10,20,32};<br /><br />char atnel&#91;&#93; = {'a'-5, 't'-5, 'n'-5, 'e'-5, 'l'-5, '.'-5, 'p'-5, 'l'-5 };<br /><br />void sd_pwr( uint8_t OnOff );<br /><br />BYTE rcv_spi (void)<br />{<br />SPDR = 0xFF;<br />loop_until_bit_is_set(SPSR, SPIF);<br />return SPDR;<br />}<br /><br />//! **************** main() ***********************************************<br />int main(void) {<br /><br />PORTB = 0xff;// podciągnięcie PORTB do VCC<br /><br />DDRB |= (1&lt;&lt;PB1);// wyjście do sterowania zasilaniem karty SD<br /><br />DDRC = 255;// cały PORTC jako wyjście<br />PORTC = 255;// zgaś wszystkie diody<br /><br />PORTD |= (1&lt;&lt;PD2)|(1&lt;&lt;PD3);// podciągnięcie wyjść<br />PORTB |= (1&lt;&lt;PB0);// klawiszy do VCC<br /><br />DDRD |=  LED_PIN1 | LED_PIN2;<br />LED_OFF1;<br />LED_OFF2;<br /><br />// init SPI<br />DDRB |= (1&lt;&lt;CS)|(1&lt;&lt;MOSI)|(1&lt;&lt;SCK)|(1&lt;&lt;CS);<br />PORTB |= (1&lt;&lt;CS);<br />SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR);<br />SPSR |= (1&lt;&lt;SPI2X);// masymalny zegar SCK<br /><br />// konfiguracja PWM (Timer1) nośna<br />TCCR1A = (1&lt;&lt;WGM10)|(1&lt;&lt;COM1A1)|(0&lt;&lt;COM1A0)|(1&lt;&lt;COM1B1);//|(1&lt;&lt;COM1B0);<br />TCCR1B = (1&lt;&lt;CS10);<br /><br />// konfiguracja Timer0 (samplowanie)<br />TCCR0 = (1&lt;&lt;WGM01);// tryb CTC<br />TIMSK = (1&lt;&lt;OCIE0);// zezwolenie na przerwanie CompareMatch<br /><br /><br /> TCCR2 |= (1&lt;&lt;WGM21);<br /> TCCR2 |= (1&lt;&lt;CS20) | (1&lt;&lt;CS21) | (1&lt;&lt;CS22);<br /> OCR2 = 244;<br /> TIMSK |= (1&lt;&lt;OCIE2);<br /><br />sei();// globalne zezwolenie na przerwania<br /><br />// **************** pętla główna **********************************<br />while(1) {<br /><br />sd_pwr(0);// wyłączamy zasilanie karty SD<br />if( SD_SLOT_EMPTY ) continue;// jeśli karta niewykryta powrót na początek while(1)<br />sd_pwr(1);// WŁĄCZAMY zasilanie karty SD<br /><br /><br />if (pf_mount(&amp;Fs)) continue;/* Initialize FS */<br /><br />for (;;) {<br /><br />if( SD_SLOT_EMPTY ) break;<br /><br />if (pf_opendir(&amp;Dir, &quot;&quot;)) break;/* Open sound file directory (root dir) */<br /><br />while (!pf_readdir(&amp;Dir, &amp;Fno) &amp;&amp; Fno.fname&#91;0&#93;) {/* Play all wav files in the dir */<br />if (!(Fno.fattrib &amp; (AM_DIR|AM_HID))<br />&amp;&amp; strstr(Fno.fname, &quot;.WAV&quot;) ) {<br /><br /><br /><br />_delay_ms(300);// odczekaj 300ms<br /><br />if (play(Fno.fname)) break;// odtwarzaj plik WAV<br /><br />}<br />}<br />}<br /><br />} // koniec while(1)<br />}<br />//********************************************************************************************<br /><br />ISR(TIMER2_COMP_vect)<br /> {<br />  static uint16_t licznik = 0;<br />         licznik++;<br />         if(licznik == 50){<br />         PORTD ^= (1&lt;&lt;PD0)|(1&lt;&lt;PD1);<br />                 licznik = 0;<br />         }<br /> }<br /><br />//***************** przerwanie TIMER0 - samplowanie ******************************************<br />ISR(TIMER0_COMP_vect) {<br /><br />#if USE44KHZ == 1<br />static uint16_t buf_idx;// indeks w pojedynczym buforze<br />static uint8_t v1, v2;// zmienne do przechowywania próbek<br />buf_idx++;// pomijamy młodszy bajt 16-bitowej próbki kanał L<br />v1 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;-128;// -128 korekcja konwerji próbki 16-bitowej do 8-bitowej<br />buf_idx++;// pomijamy młodszy bajt 16-bitowej próbki kanał R<br />v2 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;-128;// -128 korekcja konwerji próbki 16-bitowej do 8-bitowej<br />OCR1A = v1;// próbka na wyjście PWM1, kanał L<br />OCR1B = v2;// próbka na wyjście PWM2, kanał R<br /><br />buf_idx &amp;= 0x01ff;<br />if( !buf_idx ) {<br />can_read = 1;<br />nr_buf ^= 0x01;<br />}<br />#endif<br /><br />#if USE44KHZ == 0<br />static uint16_t buf_idx;// indeks w pojedynczym buforze<br />static uint8_t v1, v2;// zmienne do przechowywania próbek<br />static uint8_t efekt_cnt;// zmienna pomocnicza dla uzyskiwania prostych efektów<br /><br />if( !efekt_cnt ) {<br />if( 16 == FLAGS.resolution ) {// jeśli rozdzielczość 16-bitów<br />if( FLAGS.stereo ) {// jeśli próbki stereofoniczne<br />buf_idx++;// pomijamy młodszy bajt 16-bitowej próbki kanał L<br />v1 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;-128;// -128 korekcja konwerji próbki 16-bitowej do 8-bitowej<br />buf_idx++;// pomijamy młodszy bajt 16-bitowej próbki kanał R<br />v2 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;-128;// -128 korekcja konwerji próbki 16-bitowej do 8-bitowej<br />} else {// jeśli próbki monofoniczne<br />buf_idx++;// pomijamy młodszy bajt 16-bitowej próbki MONO<br />v1 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;-128;// -128 korekcja konwerji próbki 16-bitowej do 8-bitowej<br />v2 = v1;// to samo na dwa kanały/wyjścia<br />}<br />} else {// jeśli rozdzielczość 8-bitów<br />if( !FLAGS.stereo ) {// jeśli próbki monofoniczne<br />v1 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;;// pobieramy próbkę MONO do zmiennej v1<br />v2 = v1;// to samo na dwa kanały/wyjścia<br />} else {// jeśli próbki stereofoniczne<br />v1 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;;// pobieramy próbkę kanał L<br />v2 = buf&#91;nr_buf&#93;&#91;buf_idx++&#93;;// pobieramy próbkę kanał R<br />}<br />}<br /><br />}<br /><br />if(sk1&gt;-1) {<br />if( efekt_cnt++ &gt; sk1 ) {<br />efekt_cnt=0;<br />buf_idx+=sk2;<br />}<br />} else {<br />efekt_cnt=0;<br />sk2=4;<br />}<br /><br />OCR1A = v1;// próbka na wyjście PWM1, kanał L<br />OCR1B = v2;// próbka na wyjście PWM2, kanał R<br /><br />if( buf_idx &gt; BUF_SIZE-1 ) {<br />buf_idx=0;// reset indeksu bufora<br />can_read = 1;// flaga = 1<br />nr_buf ^= 0x01;// zmiana bufora na kolejny<br />}<br /><br />tick++;// podstawa czasu<br /><br />slupek = v1;// zmienne na potrzeby wskaźnika wysterowania<br />#endif<br />}<br />// *************************** koniec przerwania ****************************************<br /><br /><br />/* 0:Invalid format, 1:I/O error, &gt;1:Number of samples */<br />static DWORD load_header (void) {<br />DWORD sz;<br />uint8_t *wsk_buf = &amp;buf&#91;0&#93;&#91;0&#93;;<br />uint16_t ocrx;<br /><br />if (pf_read(wsk_buf, 12, &amp;rb)) return 1;/* Load file header (12 bytes) */<br /><br />if (rb != 12 || LD_DWORD(wsk_buf+8) != FCC('W','A','V','E')) return 0;<br /><br />for (;;) {<br />pf_read(wsk_buf, 8, &amp;rb);/* Get Chunk ID and size */<br />if (rb != 8) return 0;<br />sz = LD_DWORD(&amp;wsk_buf&#91;4&#93;);/* Chunk size */<br /><br />switch (LD_DWORD(&amp;wsk_buf&#91;0&#93;)) {/* FCC */<br />case FCC('f','m','t',' ') :/* 'fmt ' chunk */<br />if (sz &gt; 100 || sz &lt; 16) return 0;/* Check chunk size */<br /><br />pf_read(wsk_buf, sz, &amp;rb);/* Get content */<br /><br />if (rb != sz) return 0;<br /><br />if (wsk_buf&#91;0&#93; != 1) return 0;/* Check coding type (1) */<br /><br />if (wsk_buf&#91;2&#93; != 1 &amp;&amp; wsk_buf&#91;2&#93; != 2) /* Check channels (1/2) */<br />return 0;<br /><br />FLAGS.stereo = wsk_buf&#91;2&#93;==2;/* Get channel flag */<br />if (wsk_buf&#91;14&#93; != 8 &amp;&amp; wsk_buf&#91;14&#93; != 16)/* Check resolution (8/16) */<br />return 0;<br /><br />FLAGS.resolution = wsk_buf&#91;14&#93;;// ustalamy jaka rozdzielczość 16/8 - bitów<br />FLAGS.prescaler = 0;<br /><br />// obliczmy preskaler Timera0 w zależności od częstotliwości samplowania<br />FLAGS.khz = LD_WORD(&amp;wsk_buf&#91;4&#93;);<br />ocrx = (uint16_t)(F_CPU/8/LD_WORD(&amp;wsk_buf&#91;4&#93;))-1;<br />if( ocrx &gt; 255 ) {<br />ocrx = (uint16_t)(F_CPU/64/LD_WORD(&amp;wsk_buf&#91;4&#93;))-1;<br />FLAGS.prescaler = 1;<br />}<br />OCR0 = (uint8_t)ocrx;// obliczona wartość OCR0<br />break;<br /><br />case FCC('d','a','t','a') :/* 'data' chunk (start to PLAY) */<br />return sz;<br /><br />case FCC('L','I','S','T') :/* 'LIST' chunk (skip) */<br />case FCC('f','a','c','t') :/* 'fact' chunk (skip) */<br />pf_lseek(Fs.fptr + sz);<br />break;<br /><br />default :/* Unknown chunk (error) */<br />return 0;<br />}<br />}<br /><br />return 0;<br />}<br /><br /><br />// ******************  funkcja  P L A Y  ********************************<br />static UINT play ( const char *fn ) {<br /><br />DWORD sz;<br />FRESULT res;<br /><br />if ((res = pf_open(fn)) == FR_OK) {<br /><br />sz = load_header();/* Load file header */<br />if (sz &lt; 256) return (UINT)sz;<br /><br />pf_lseek(0);<br /><br />pf_read(&amp;buf&#91;0&#93;&#91;0&#93;, BUF_SIZE , &amp;rb);// załaduj pierwszą część bufora<br />pf_read(&amp;buf&#91;1&#93;&#91;0&#93;, BUF_SIZE , &amp;rb);// załaduj drugą część bufora<br /><br />if( !FLAGS.prescaler ) TMR_START;// start Timera0 (samplowanie) z<br />else TMR64_START;// preskalerem zależnym od częstotliwości<br /><br />DDRD  |= (1&lt;&lt;PD5)|(1&lt;&lt;PD4);// ustaw piny PWM1 (OC1A) oraz PWM2 (OC1B) jako wyjścia WAŻNE !!!<br /><br />#if USE44KHZ == 0<br />uint8_t ss=0,mm=0;<br />uint16_t kdelay = 0;// zmienna pomocnicza do eliminacji drgańs styków<br />uint8_t tab&#91;8&#93; = {0,1,3,7,15,31,63,127};// liniowa charakterystyka wsk. wysterowania<br />#endif<br /><br /><br />while(1) {<br />if( can_read ) {// jeśli flaga ustawiona w obsłudze przerwania<br /><br />pf_read(&amp;buf&#91; nr_buf ^ 0x01 &#93;&#91;0&#93;, BUF_SIZE , &amp;rb);// odczytaj kolejny bufor<br />if( rb &lt; BUF_SIZE ) break;// jeśli koniec pliku przerwij pętlę while(1)<br /><br />// klawisz do zmiany utworu na następny<br />if( !(PINB &amp; (1&lt;&lt;PB0)) ) break;<br /><br />#if USE44KHZ == 0<br />PORTC = ~tab&#91;slupek/33&#93;;// obsługa wsk. wysterowania<br /><br />// obliczanie czasu utworu<br />if(tick&gt;FLAGS.khz) {<br />ss++;<br />if(ss&gt;59) {<br />ss=0;<br />mm++;<br />if(mm&gt;59) mm=0;<br />}<br />tick=0;<br />}<br /><br />// klawisz nr1 do efektów<br />if( !(PIND &amp; (1&lt;&lt;PD2)) ) {<br />kdelay++;<br />if(kdelay&gt;30) {<br />if(sk1&lt;4) {<br />sk1++;<br />if(sk2&lt;13) sk2+=4;<br />}<br />kdelay = 0;<br />}<br />}<br /><br />// klawisz nr2 do efektów<br />if( !(PIND &amp; (1&lt;&lt;PD3)) ) {<br />kdelay++;<br />if(kdelay&gt;30) {<br />if(sk1&gt;-1) {<br />sk1--;<br />if(sk2&gt;4) sk2-=4;<br />}<br />kdelay = 0;<br />}<br />}<br /><br /><br />#endif<br />can_read = 0;<br />}<br />}<br /><br /><br /><br /><br />DDRD  &amp;= ~((1&lt;&lt;PD5)|(1&lt;&lt;PD4));// ustaw piny PWM1 (OC1A) oraz PWM2 (OC1B) jako wejścia WAŻNE !!!<br /><br />if( !FLAGS.prescaler ) TMR_STOP;// wyłączenie Timera0 (samplowania)<br />else TMR64_STOP;<br /><br />PORTC = 255;// wyzerowanie wsk. wysterowania<br /><br />_delay_ms(500);// przerwa 0,5s<br />}<br /><br />return res;<br />}<br /><br /><br />/*<br /> * FUNKCJA Programowego włączania i wyłączania zasilania do karty<br /> * pamięci MMC/SD w zestawach uruchomieniowych ATB od wersji 1.02<br /> *<br /> * sd_pwr(1) - włączenie zasilania<br /> * sd_pwr(0) - wyłączenie zasilania<br /> */<br />void sd_pwr( uint8_t OnOff ) {<br />if(OnOff) {<br />SD_ON;<br />SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR);<br />_delay_ms(50);<br />disk_initialize();<br />} else {<br />SPCR &amp;= ~(1&lt;&lt;SPE);<br />PORTB &amp;= ~((1&lt;&lt;PB7)|(1&lt;&lt;PB6)|(1&lt;&lt;PB5));<br />SD_OFF;<br />_delay_ms(50);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 3 lut 2015, o 20:43</p><hr />
]]></content>
</entry>
</feed>