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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-09-28T15:03:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=23934&amp;mode</id>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2021-09-28T15:03:29+01:00</updated>
<published>2021-09-28T15:03:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233667#p233667</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233667#p233667"/>
<title type="html"><![CDATA[Re: Jak przerobić L14_AVR_WAV_PLAYER]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233667#p233667"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Chciałbym przerobić kod z lekcji L14_AVR_WAV_PLAYER z GB<br /></div><br />Rozumiem że rozmawiamy o L14 z GB .<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Gdzie mam ten warunek wstawić w kodzie lub z jakim warunkiem mam go zamienić ?<br /></div><br />W main.c orginalnego kodu na samym końcu tej  funkcji jest taki warunek. <br /><br />[syntax=c]if (play(Fno.fname)) break;// odtwarzaj plik WAV[/syntax]<br /><br />więc TY musisz najpierw  tak jak pisałem wyżej powołać tablice stringów w której będziesz przechowywał nazwy takie jakie masz na karcie tych nagrań a potem w tym warunku [syntax=c]if (play(Fno.fname)) break;// odtwarzaj plik[/syntax] przekazać wskaźnik do tej tablicy tak jak ci to pokazałem wyżej<br />gdzie zn to indeks twoich nazw nagrań  w powołanej przez ciebie tablicy stringów , np. <br />[syntax=c]const char numer&#91;&#93;&#91;8&#93;  = {<br />&quot;000.WAV&quot;,&quot;001.WAV&quot;,&quot;002.WAV&quot;,&quot;003.WAV&quot;,&quot;004.WAV&quot;,&quot;005.WAV&quot;,<br />&quot;006.WAV&quot;,&quot;007.WAV&quot;,&quot;008.WAV&quot;,&quot;009.WAV&quot;,&quot;010.WAV&quot;,&quot;011.WAV&quot;,<br />&quot;012.WAV&quot;,&quot;013.WAV&quot;,&quot;014.WAV&quot;,&quot;015.WAV&quot;,&quot;016.WAV&quot;,&quot;017.WAV&quot;,<br />&quot;018.WAV&quot;,&quot;019.WAV&quot;,&quot;020.WAV&quot;,&quot;021.WAV&quot;,&quot;022.WAV&quot;,&quot;023.WAV&quot;,<br />&quot;024.WAV&quot;,&quot;025.WAV&quot;,&quot;026.WAV&quot;,&quot;027.WAV&quot;,&quot;028.WAV&quot;,&quot;029.WAV&quot;,<br />&quot;030.WAV&quot;,&quot;031.WAV&quot;,&quot;032.WAV&quot;,&quot;033.WAV&quot;,&quot;034.WAV&quot;,&quot;035.WAV&quot;,<br />&quot;036.WAV&quot;,&quot;037.WAV&quot;,&quot;038.WAV&quot;,&quot;039.WAV&quot;,&quot;040.WAV&quot;,&quot;041.WAV&quot;,<br />&quot;042.WAV&quot;,&quot;043.WAV&quot;,&quot;044.WAV&quot;,&quot;045.WAV&quot;,&quot;046.WAV&quot;,&quot;047.WAV&quot;,<br />&quot;048.WAV&quot;,&quot;049.WAV&quot;,&quot;050.WAV&quot;,&quot;051.WAV&quot;,&quot;052.WAV&quot;,&quot;053.WAV&quot;,<br />&quot;054.WAV&quot;,&quot;055.WAV&quot;,&quot;056.WAV&quot;,&quot;057.WAV&quot;,&quot;058.WAV&quot;,&quot;059.WAV&quot;,<br />&quot;101.WAV&quot;,&quot;102.WAV&quot;,&quot;103.WAV&quot;,&quot;104.WAV&quot;,&quot;105.WAV&quot;,&quot;106.WAV&quot;,<br />&quot;107.WAV&quot;,&quot;108.WAV&quot;,&quot;109.WAV&quot;,&quot;100.WAV&quot;,&quot;110.WAV&quot;,&quot;120.WAV&quot;,<br />&quot;130.WAV&quot;,&quot;140.WAV&quot;,&quot;150.WAV&quot;,&quot;160.WAV&quot;,&quot;170.WAV&quot;,&quot;180.WAV&quot;,<br />&quot;190.WAV&quot;,&quot;200.WAV&quot;,&quot;210.WAV&quot;,&quot;220.WAV&quot;,&quot;230.WAV&quot;,&quot;240.WAV&quot;,<br />&quot;250.WAV&quot;<br />};[/syntax]<br />a potem w main.c <br /> w warunku [syntax=c]if (play(numer&#91;zn&#93;)) break;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 28 wrz 2021, o 15:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2021-09-28T09:45:26+01:00</updated>
<published>2021-09-28T09:45:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233664#p233664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233664#p233664"/>
<title type="html"><![CDATA[Re: Jak przerobić L14_AVR_WAV_PLAYER]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233664#p233664"><![CDATA[
Gdzie mam ten warunek wstawić w kodzie lub z jakim warunkiem mam go zamienić ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 28 wrz 2021, o 09:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2021-09-28T07:48:45+01:00</updated>
<published>2021-09-28T07:48:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233663#p233663</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233663#p233663"/>
<title type="html"><![CDATA[Re: Jak przerobić L14_AVR_WAV_PLAYER]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233663#p233663"><![CDATA[
Masz tam w lekcji funkcję[syntax=c]static UINT play ( const char *fn )[/syntax]<br />do której przekazujesz argument w <div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />char *fn<br /></div> jest to wskaźnik n string (nazwę utworu) którą ma odtworzyć funkcja play.<br />Więc robisz tablicę stringów z nazwami utworów jakie masz na karcie i przekazujesz do funkcji play nazwę którą ma odtważać np tak.[syntax=c]if (play( ram_vol.name&#91;zn&#93;)) break;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 28 wrz 2021, o 07:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2021-09-27T20:22:17+01:00</updated>
<published>2021-09-27T20:22:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233662#p233662</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233662#p233662"/>
<title type="html"><![CDATA[Re: Jak przerobić L14_AVR_WAV_PLAYER]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233662#p233662"><![CDATA[
Chciałbym móc wpisywać do jakiejś zmiennej utwory które mają być odtwarzane<br />lub godziny które ma wymówić moduł <br /><br />Na razie można zmieniać utwory po naciśnięciu klawisza i są one odtwarzane w takiej kolejności<br />jak są wgrane na karcie  <br /><br />więc trudno w takim układzie sterować tym odtwarzaczem tak aby czytał wybiórczo godziny<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 27 wrz 2021, o 20:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2021-09-27T19:07:27+01:00</updated>
<published>2021-09-27T19:07:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233661#p233661</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233661#p233661"/>
<title type="html"><![CDATA[Re: Jak przerobić L14_AVR_WAV_PLAYER]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233661#p233661"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Chciałbym przerobić kod z lekcji L14_AVR_WAV_PLAYER z GB<br />w taki sposób abym miał wpływ na odtwarzany komunikat<br /></div><br />Rozwiń o co chodzi co byś chciał zmieniać (szybkość odtwarzania , przewijanie , inny utwór).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 27 wrz 2021, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki53]]></name></author>
<updated>2021-09-27T18:50:23+01:00</updated>
<published>2021-09-27T18:50:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233660#p233660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233660#p233660"/>
<title type="html"><![CDATA[Jak przerobić L14_AVR_WAV_PLAYER]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23934&amp;p=233660#p233660"><![CDATA[
Witajcie <br /><br />Chciałbym przerobić kod z lekcji L14_AVR_WAV_PLAYER z GB<br />w taki sposób abym miał wpływ na odtwarzany komunikat <br /><br />Chciałbym z niego zrobić moduł głosowy do zegara <br />ale nie mam pojęcia jak to przerobić <br />przeczytane strony z opisem tego kodu niewiele pomogły<br /><br />Wyczytałem że odpowiednich zmian trzeba dokonać w tych fragmentach kodu<br />ale jakich zmian to już dla mnie magia <br /><br />Może koledzy z większym doświadczeniem coś mi podpowiedzą<br /><br />fragmenty kodów w których trzeba dokonać zmian<br />[syntax=c]// ******************  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 /><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[/syntax]<br /><br />pętla for(;;) <br /><br />[syntax=c]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 />}[/syntax]<br />Przepraszam że daję taki długi kod ale nie wiem jak to zrobić a chciałbym aby było jak najbardziej czytelne<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18503">miki53</a> — 27 wrz 2021, o 18:50</p><hr />
]]></content>
</entry>
</feed>