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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-04-01T11:13:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24196&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2022-04-01T11:13:09+01:00</updated>
<published>2022-04-01T11:13:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235305#p235305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235305#p235305"/>
<title type="html"><![CDATA[Re: Przekazanie wskaźnika na tablicę do procedury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235305#p235305"><![CDATA[
A tak to wyszło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><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 />Zrobiłem tą bibliotekę do konkretnego projektu, którego parametry i założenia opracowywałem przez kilka tyg. na początku roku 2020, potem brak czasu i od kilku tygodni znowu działam. Obecnie czekam na zamówione płytki od chińczyka, a w między czasie zająłem się tym co mogę na sucho bez gotowej elektroniki oprogramować. Wszystkie dźwięki są syntezowane (żadnych sampli) i oczywiście odtwarzane niezależnie w tle programu. O ile odgrywanie melodyjek to banał to już w związku z szumnymi efektami itp. musiałem sobie przypomnieć jak to się na commodore w latach 90 robiło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Do dyspozycji tylko jeden sprzętowy port PWM na TIMER1, i minimalny interwał wywołania procedury na jaki mogę tu sobie pozwolić to 1ms, bo na inne duperele musi być czas... W projekcie jeszcze będzie 9x 74hc595 do świecenia i czytania klawiszy, 48x WS2811 w obudowach przewlekanych 5mm (przyszły mi w zeszłym tyg. - są zarąbiste) i jeszcze parę innych drobiazgów bezpośrednio pod piny podpiętych, a wszystko docelowo na Atmega328.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 1 kwi 2022, o 11:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2022-03-31T22:59:47+01:00</updated>
<published>2022-03-31T22:59:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235303#p235303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235303#p235303"/>
<title type="html"><![CDATA[Re: Przekazanie wskaźnika na tablicę do procedury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235303#p235303"><![CDATA[
Heh, i jasne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Próbowałem tak robić tylko, że zapomniałem dodać &quot;const&quot; w deklaracji na górze i mi na czerwono wywalał tą linię już zmodyfikowaną - to mnie zmyliło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />To dodam jeszcze w kwestii uzupełnienia tematu dla potomnych i dla wszelakiej jasności, że po takiej modyfikacji należy jeszcze nie zapomnieć o prawidłowym odczycie danych z tablicy czyli w moim przypadku linia z pierwszego postu powinna wyglądać:<br /><br />[syntax=c]x = pgm_read_byte(&amp;melodia&#91;i&#93;);//pozycja w tabeli tonów[/syntax]<br /><br />a żeby to w ogóle ruszyło to potrzeba dołączyć też na początek :<br /><br />[syntax=c]#include &lt;avr/pgmspace.h&gt;[/syntax]<br /><br />Dzięki Mirek! Jak zwykle można na Ciebie liczyć <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=1922">SylwekK</a> — 31 mar 2022, o 22:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2022-03-31T22:36:57+01:00</updated>
<published>2022-03-31T22:36:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235302#p235302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235302#p235302"/>
<title type="html"><![CDATA[Re: Przekazanie wskaźnika na tablicę do procedury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235302#p235302"><![CDATA[
a no to dobrze zgadłem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />void melo(uint8_t ile, uint8_t tempo, <strong><span style="color: #FF0000">const </span></strong>uint8_t *melodia, uint8_t repeat)<br /></div><br /><br />i komunikat mówi ci o tym właśnie wprost że brakuje const - niezgodność typów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 mar 2022, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2022-03-31T22:13:06+01:00</updated>
<published>2022-03-31T22:13:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235301#p235301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235301#p235301"/>
<title type="html"><![CDATA[Re: Przekazanie wskaźnika na tablicę do procedury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235301#p235301"><![CDATA[
Na początek takie coś i nie mam pojęcia co z tym zrobić. Przeniosłem tylko tablicę na początek programu (jak w pierwszym poście)<br /><a href="https://obrazkiforum.atnel.pl/1922/b09c0f914f3252564b9506a13ca5f9b7.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1922/b09c0f914f3252564b9506a13ca5f9b7.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 31 mar 2022, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2022-03-31T20:49:54+01:00</updated>
<published>2022-03-31T20:49:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235300#p235300</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235300#p235300"/>
<title type="html"><![CDATA[Re: Przekazanie wskaźnika na tablicę do procedury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235300#p235300"><![CDATA[
sieje ci błędami ale nie pokazujesz jakie - więc ciężko coś wprost pomóc. Mogę tylko zgadywać, że nie dałeś np argumentom funkcji również specyfikatora const<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 mar 2022, o 20:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2022-03-31T20:07:03+01:00</updated>
<published>2022-03-31T20:07:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235299#p235299</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235299#p235299"/>
<title type="html"><![CDATA[Przekazanie wskaźnika na tablicę do procedury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24196&amp;p=235299#p235299"><![CDATA[
Ludziska, natknąłem się na taki problem ze wskaźnikami i z tablicami, a mam ich kilka do przekazania.<br />Otóż przy testach było mi wszystko jedno (i łatwiej), bo każda tablica była w RAM zdefiniowana w locie<br />i pod nią skok do procedury. Wygląda to mniej więcej tak (i oczywiście działa):<br /><br />[syntax=c]...<br />    case melo2:<br />      {<br />uint8_t m2&#91;&#93;={0x3c, 0x31, 0xff, 0, 0x35, 0, 0x36, 0, 0, 0x32, 0xff, 0x39, 0x38, 0, 0, 0};<br />melo(16, 160, m2, 1);<br />      }<br />      break;<br />...[/syntax]<br /><br />Procedura która to odczytuje wygląda tak:<br /><br />[syntax=c]void melo(uint8_t ile, uint8_t tempo, uint8_t *melodia, uint8_t repeat)<br />{<br />    static uint8_t tab, x;<br />    if(!topu &amp;&amp; !end)<br />      {<br />...<br />x = melodia&#91;i&#93;;//pozycja w tabeli tonów<br />...<br />...itd.<br />...<br />      }<br />}[/syntax]<br /><br />Ponieważ skończyłem już etap programowania efektów chciałem to zoptymalizować i uporządkować czyli wszystkie tablice (jest ich około 15) wywalić na początek programu i przenieść do flasha czyli:<br /><br />[syntax=c]const uint8_t PROGMEM m1&#91;&#93;={0x26, 0x27, 0, 0x22, 0, 0x1E, 0x27, 0x26, 0,0};<br />...itd.[/syntax]<br /><br />i za cholerę nie wiem jak to zrobić, bo sieje mi błędami przy procedurze i przekazywaniu parametru.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 31 mar 2022, o 20:07</p><hr />
]]></content>
</entry>
</feed>