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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-20T13:25:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13916&amp;mode</id>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-20T13:25:09+01:00</updated>
<published>2015-12-20T13:25:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148534#p148534</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148534#p148534"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148534#p148534"><![CDATA[
Mieszanie się kolorów zrobiłem tak:<br />Nie wiem czy poprawnie, ale działa:)<br /><br />[syntax=c]void Gradiend2ctest (void *line,int x,int len,uint32_t A,uint32_t B){<br />int i;<br />int alen = (int) (x+len);<br /><br />TCOLOR col;<br />TWSRGB1 * aline = line;<br />TWSRGB1 * check = line; //powolana nowa zmienna do sprawdzania w tablicy<br /><br />for (i = x; i &lt; alen; i++){<br />if (i &lt; 0) continue;<br />if (i &gt;= WS_LEDS_LENG + 1)continue;<br /><br />col.color = Interpolate2colors(A,B,i-x,len);<br /><br />check&#91;i&#93;.r = aline&#91;i&#93;.r; //przypisanie <br />if (check&#91;i&#93;.r &lt; GAMMAR(col.cl&#91;cr&#93;)){ //sprawdzenie<br />aline&#91;i&#93;.r = GAMMAR(col.cl&#91;cr&#93;);<br />}<br />check&#91;i&#93;.g = aline&#91;i&#93;.g;<br />if (check&#91;i&#93;.g &lt; GAMMAR(col.cl&#91;cg&#93;)){<br />aline&#91;i&#93;.g = GAMMAG(col.cl&#91;cg&#93;);<br />}<br />check&#91;i&#93;.b = aline&#91;i&#93;.b;<br />if (check&#91;i&#93;.b &lt; GAMMAR(col.cl&#91;cb&#93;)){<br />aline&#91;i&#93;.b = GAMMAB(col.cl&#91;cb&#93;);<br />}<br /><br />}<br />//ws281x_asm_send((uint8_t*)line,WS_LEDS_LENG, WS_PIN );<br />}[/syntax]<br /><br />Sprawdzam co jest na miejscu w tablicy, jeśli jest mniejsze od tego co chce zapisać, to zapisuje.<br /><br /><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><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 20 gru 2015, o 13:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-19T20:35:07+01:00</updated>
<published>2015-12-19T20:35:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148459#p148459</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148459#p148459"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148459#p148459"><![CDATA[
Nie.<br />Zapisujesz pierwszy graduent,zaczynasz od 0 do 90<br />Leci tak do pozycji 90<br />Jesli w tym czasie zaczniesz rysowac drugi gradiend od 90 do 0, to ten drugi zapisuje na pozycjach od 0 do x zera,bo nic tam nie wyswietlasz.<br />Wiec chwile jest 1 gradiend,drugi go kasuje, wiec migniecie masz.<br />Drugi rysuje sie normalnie, bo na nim konczysz i wysylasz.<br /><br />Przy zapisywaniu do tablicy trzeba by sprawdzac co jest na pozycjach gradiana1, przy ladowaniu 2 go i nie pozwalac na wpisanie mniejszych wartosci, i odwrotnie dla pierwszego gradiana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 19 gru 2015, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-19T19:59:55+01:00</updated>
<published>2015-12-19T19:59:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148455#p148455</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148455#p148455"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148455#p148455"><![CDATA[
Jak wkładasz do bufora wartość pod konkretny indeks, to nie zerujesz pozostałych pozycji. <br />Dopiero w poniedziałek-wtorek będę mógł sprawdzić w układzie, bo aż sam jestem ciekawy jak te komety latają.<br /> Aaa. Mrygają na mijance?<br /><br />No to może w funkcjii &quot;gradient&quot; dać takie coś:<br /><br />[syntax=c]aline&#91;i&#93;.r |= col.cl&#91;cr&#93;;//GAMMAR(col.cl&#91;cr&#93;);<br />aline&#91;i&#93;.g |= col.cl&#91;cg&#93;;//GAMMAG(col.cl&#91;cg&#93;);<br />aline&#91;i&#93;.b |= col.cl&#91;cb&#93;;//GAMMAB(col.cl&#91;cb&#93;);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 19 gru 2015, o 19:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-19T19:34:37+01:00</updated>
<published>2015-12-19T19:34:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148448#p148448</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148448#p148448"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148448#p148448"><![CDATA[
Tez rak probowalem,pierwszy gradiend bedzie migal,poniwaz zaraz po nim wysylasz drugi,gdzie &quot;dosylasz&quot; zera na miescu pierwszego..malujemy od konca przeciez;)<br /><br />Trzeba by sprawdzac czy w tablicy przed zaladowaniem wartosci cos jest,jesli jest to nienadpisywac zerami... Ale to niesie dodatkowy problem,jak wyzerowac;)<br /><br />Mysle dalej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 19 gru 2015, o 19:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-19T19:24:54+01:00</updated>
<published>2015-12-19T19:24:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148445#p148445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148445#p148445"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148445#p148445"><![CDATA[
Nie mam jak sprawdzić, ale spróbuj tak:<br /><br />[syntax=c]void komety2 (uint8_t dlugosc){<br />        extern uint8_t *pasek1;<br />        extern uint8_t *pasek2;<br />        int i;<br />        uint32_t randcocor1 = random_color();<br />        uint32_t randcocor2 = random_color();<br />        uint32_t randcocor3 = random_color();<br />        uint32_t randcocor4 = random_color();<br /> <br />        for (i = (0-dlugosc); i &lt; WS_LEDS_LENG+2+dlugosc; i++){<br />                Gradiend2c(pasek1,i,dlugosc,randcocor1, randcocor2);<br />                ws_set_pixel(pasek1,(i-1),black);<br />                <br />                ws281x_asm_send(pasek1,WS_LEDS_LENG, WS_PIN );                              ///// dopisz tą linijkę<br /><br />                Gradiend2c(pasek1,(WS_LEDS_LENG-i-1),dlugosc,randcocor3, randcocor4);<br />                ws_set_pixel(pasek1,(WS_LEDS_LENG-i+dlugosc+1),black);<br /> <br />                ws281x_asm_send(pasek1,WS_LEDS_LENG, WS_PIN );<br /> <br /> <br />        _delay_ms(10);<br />        }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 19 gru 2015, o 19:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-19T18:08:24+01:00</updated>
<published>2015-12-19T18:08:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148436#p148436</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148436#p148436"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148436#p148436"><![CDATA[
Ok, jednak mam z tym problem.<br />Chce narysować dwa gradienty, jeden leci od końca linijki, drugi od początku.<br />jak będę wypełniał jeden bufor, to jeden nadpisze drugi, to normalne.<br />Jak będę wysyłał z dwóch buforów, tez jeden nadpisze drugi przy wysyłaniu już na taśmie. <br /><br />Mogę zrobić tak, ze, działają dwa gradienty ale nie przenikają się kolorami...oczywisce ten drugi wysyla swoje dane z bufora na styku..<br /><br />[syntax=c]void komety2 (uint8_t dlugosc){<br />extern uint8_t *pasek1;<br />extern uint8_t *pasek2;<br />int i;<br />uint32_t randcocor1 = random_color();<br />uint32_t randcocor2 = random_color();<br />uint32_t randcocor3 = random_color();<br />uint32_t randcocor4 = random_color();<br /><br />for (i = (0-dlugosc); i &lt; WS_LEDS_LENG+2+dlugosc; i++){<br />Gradiend2c(pasek1,i,dlugosc,randcocor1, randcocor2);<br />ws_set_pixel(pasek1,(i-1),black);<br />Gradiend2c(pasek1,(WS_LEDS_LENG-i-1),dlugosc,randcocor3, randcocor4);<br />ws_set_pixel(pasek1,(WS_LEDS_LENG-i+dlugosc+1),black);<br /><br />ws281x_asm_send(pasek1,WS_LEDS_LENG, WS_PIN );<br /><br /><br />_delay_ms(10);<br />}<br />}[/syntax]<br /><br />Jak to ogryźć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 19 gru 2015, o 18:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-18T18:23:03+01:00</updated>
<published>2015-12-18T18:23:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148393#p148393</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148393#p148393"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148393#p148393"><![CDATA[
Można sobie ręcznie w ten sposób ograniczyć, oczywiście. No ale to jest rozwiązanie na stałe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 18 gru 2015, o 18:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-18T15:41:43+01:00</updated>
<published>2015-12-18T15:41:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148386#p148386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148386#p148386"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148386#p148386"><![CDATA[
Rozumiem ze masz maksymalne liczby dużo mniejsze niż 255??<br /><br />Zamiast np tak:<br />[syntax=c]const uint8_t gamma_correctionR&#91;&#93; PROGMEM = {<br /><br />0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,3,3,3,3,3,<br />4,4,4,4,4,5,5,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,10,10,10,11,11,12,12,12,13,13,14,14,14,15,15,<br />16,16,17,17,18,18,19,19,20,20,21,21,22,23,23,24,24,25,26,26,27,28,28,29,30,30,31,32,32,33,<br />34,35,35,36,37,38,39,39,40,41,42,43,44,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,<br />61,62,63,64,65,66,67,68,70,71,72,73,74,75,77,78,79,80,82,83,84,85,87,89,91,92,93,95,96,98,<br />99,100,101,102,105,106,108,109,111,112,114,115,117,118,120,121,123,125,126,128,130,131,133,<br />135,136,138,140,142,143,145,147,149,151,152,154,156,158,160,162,164,165,167,169,171,173,175,<br />177,179,181,183,185,187,190,192,194,196,198,200,202,204,207,209,211,213,216,218,220,222,225,<br />227,229,232,234,236,239,241,244,246,249,251,253,254,255<br />};[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 18 gru 2015, o 15:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-18T15:32:39+01:00</updated>
<published>2015-12-18T15:32:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148385#p148385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148385#p148385"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148385#p148385"><![CDATA[
Do tych dalszych poradników nie dotarłem niestety.<br />Ale ogólną jasność można dostosować korekcją gamma.<br />Ja to robię na etapie funkcji ws_set_pixel().<br /><br />[syntax=c]void ws_set_pixel (void *line, int x, uint32_t color){<br />        if (x&lt;0) return;<br />        if (x&gt;=WS_LED_CNT) return;<br /><br />GAMMAR(*((uint8_t*) line+x*3) = color &gt;&gt; 8);<br />GAMMAG(*((uint8_t*) line+x*3+1) = color &gt;&gt; 16);<br />GAMMAB(*((uint8_t*) line+x*3+2) = color);<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 18 gru 2015, o 15:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-18T12:46:12+01:00</updated>
<published>2015-12-18T12:46:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148379#p148379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148379#p148379"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148379#p148379"><![CDATA[
Popróbuje trochę, na razie mam linie, przesuwanie ich i radianty, fajnie jakby te komety zrobić:)<br />Jeszcze jedno pytanie.<br />Funkcja rand().<br /><br />Jak można regulować jasność w tej funkcji?<br />Wiem ze w bibliotece jest <br />#defineRAND_MAX 0x7FFF - czyli maksymalna liczba jaka generuje, można ja zmienić na 0xff.<br />Zmiana na 0x96 (150 w dec), nie przynosi efektów.<br />Zapis rand() % 90, za ciemno, dopiero rand() % 150 widać ze lekko się ściemniły, % 200 nic nie zmienia.<br /><br />Wyczytałem:<br /><br />[syntax=c]v1 = rand() % 100;         // v1 in the range 0 to 99<br />v2 = rand() % 100 + 1;     // v2 in the range 1 to 100<br />v3 = rand() % 30 + 1985;   // v3 in the range 1985-2014[/syntax]<br /><br />Czyli zapis rand() % 150 powinien generować liczby od 0 do 150...jednak jakoś dziwnie to działa..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 18 gru 2015, o 12:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-18T09:58:00+01:00</updated>
<published>2015-12-18T09:58:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148375#p148375</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148375#p148375"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148375#p148375"><![CDATA[
Nie robiłem takich efektów, ale te dwa gradienty rysujesz cały czas piksel po pikselu więc na mijance jakaś tam wypadkowa wyjdzie, albo ten drugi przesłoni pierwszy. Może spróbuj wysyłać dwa razy najpierw po odrysowaniu pierwszego w buforze, a potem drugiego. <br /> <br />Trzeba pokombinować, czasem usilnie próbuję zrobić jakiś efekt, a wyjdzie mi coś innego jeszcze lepszego <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />  Na potrzeby niektórych efektów można też porobić sobie przeróbki funkcji narzędziowych i wkładać piksel do bufora operacją &quot;OR&quot; np.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 18 gru 2015, o 09:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-18T09:25:31+01:00</updated>
<published>2015-12-18T09:25:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148374#p148374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148374#p148374"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148374#p148374"><![CDATA[
Czyli jeden bufor wystarczy, by np narysować dwa gradienty w dwie strony?<br />Z przenikaniem (sumowaniem się) kolorów?<br /><br />Próbowałem coś takiego zrobić ale coś nie wychodzi.<br />A nie będzie tak, ze drugi gradient będzie nadpisywać pierwszy, tam, gdzie dane będą na tych samych pozycjach?<br />Zakładam ze jeden leci od końca do początku, drugi w druga stronę.<br />W miejscu styku dane muszą się nałożyć.<br /><br />Jak to jest rozwiązane w przykładzie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 18 gru 2015, o 09:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-18T09:06:32+01:00</updated>
<published>2015-12-18T09:06:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148372#p148372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148372#p148372"/>
<title type="html"><![CDATA[Re: magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148372#p148372"><![CDATA[
Jakoś dziwnie to robisz. Rysujesz i wysyłasz. I tak w kółko. Po co dwa identyczne bufory?<br />Chyba, że jakoś dzielisz tasiemkę z diodami na osobne sekcje. Na reset potrzeba aż 50us to powinno pójść jeden bufor po drugim.<br /><br /> Albo zamiast pętli &quot;for&quot; to zmienne statyczne i timerki?<br /><br /> Albo w jednej pętli rysujesz dwa efekty w jednym buforze.<br />tu taka funkcyjka dla mojej gwiazdy 51 diod:<br /><br />[syntax=c]void interpol2 (uint32_t A, uint32_t B){<br />inti, len=16;<br />uint32_t kolor;<br />int posd1=GORNY_ROG_DUZA, posd2=GORNY_ROG_DUZA;<br />int posm1=GORNY_ROG_MALA, posm2=GORNY_ROG_MALA;<br /><br />//ws_cls(pasek,0x220011);<br />for(i=0; i&lt;len; i++){<br />kolor=Interpolate2Colors(A, B, i , len);<br /><br />ws_set_pixel(pasek, posd1, kolor);<br />ws_set_pixel(pasek, posd2, kolor);<br />ws_set_pixel(pasek, posm1, kolor);<br />ws_set_pixel(pasek, posm2, kolor);<br /><br />posd1++;<br />posd2--;<br />if(i&lt;10)<br />{<br />posm1++;<br />posm2--;<br />}<br />ws281x_asm_send(pasek, WS_LED_CNT, WS_PIN);<br />_delay_ms(40);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 18 gru 2015, o 09:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2015-12-18T08:49:38+01:00</updated>
<published>2015-12-18T08:49:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148370#p148370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148370#p148370"/>
<title type="html"><![CDATA[magic led i dwie tablice w ram]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13916&amp;p=148370#p148370"><![CDATA[
Witam<br />Mam mały problem.<br /><br />Próbuje zrobić defekt na dwóch tablicach, mam problem z wysłaniem tego do paska.<br /><br />Funkcja P Mirka do wysylania:<br /><br />[syntax=c]void ws281x_asm_send( void *data, uint16_t datlen, uint8_t pin ) {<br /><br />uint8_t databyte=0, cnt, pinLO=~pin;<br />WS_DIR |= pin;<br />datlen *= 3;<br /><br />#if F_CPU == 16000000<br /><br />asm volatile(<br />&quot;lds%&#91;cnt&#93;,%&#91;ws_port&#93;\n\t&quot;<br />&quot;or%&#91;pinHI&#93;,%&#91;cnt&#93;\n\t&quot;<br />&quot;and%&#91;pinLO&#93;,%&#91;cnt&#93;\n\t&quot;<br />&quot;mPTL%=:subi%A6,1\n\t&quot;<br />&quot;sbci%B6,0\n\t&quot;<br />&quot;brcsexit%=\n\t&quot;<br />&quot;ld%&#91;databyte&#93;,X+\n\t&quot;<br />&quot;ldi%&#91;cnt&#93;,8\n\t&quot;<br /><br />&quot;oPTL%=:sts%&#91;ws_port&#93;,%&#91;pinHI&#93;\n\t&quot;<br />&quot;rjmp .+0\n\t&quot;<br /><br />&quot;lsl%&#91;databyte&#93;\n\t&quot;<br />&quot;brcs.+2\n\t&quot;<br />&quot;sts%&#91;ws_port&#93;,%&#91;pinLO&#93;\n\t&quot;<br />&quot;rjmp .+0\n\t&quot;<br />&quot;rjmp .+0\n\t&quot;<br /><br />&quot;dec%&#91;cnt&#93;\n\t&quot;<br />&quot;sts%&#91;ws_port&#93;,%&#91;pinLO&#93;\n\t&quot;<br />&quot;breqmPTL%=\n\t&quot;<br />&quot;rjmp .+0\n\t&quot;<br /><br />&quot;rjmpoPTL%=\n\t&quot;<br />&quot;exit%=:\n\t&quot;<br />:&#91;cnt&#93;&quot;=&amp;d&quot; (cnt)<br />:&#91;databyte&#93;&quot;r&quot; (databyte), &#91;ws_port&#93;&quot;M&quot; (_SFR_MEM_ADDR(WS_PORT)),<br /> &#91;pinHI&#93;&quot;r&quot; (pin), &#91;pinLO&#93;&quot;r&quot; (pinLO), &#91;data&#93;&quot;x&quot; (data), &#91;datlen&#93;&quot;r&quot; (datlen)<br />);<br /><br />#endif<br /><br />}[/syntax]<br /><br />I teraz pytanie:<br /><br />Czy jak wywolam jedna funkcje zaraz za druga:<br />[syntax=c]ws281x_asm_send(pasek1,WS_LEDS_LENG, WS_PIN );<br />ws281x_asm_send(pasek2,WS_LEDS_LENG, WS_PIN );[/syntax]<br /><br /><br /><br />[syntax=c]TWSRGB1 ws_rgb_leds1&#91;WS_LEDS_LENG&#93;; //tablica<br />uint8_t *pasek1 = (uint8_t*)ws_rgb_leds;<br /><br />TWSRGB2 ws_rgb_leds2&#91;WS_LEDS_LENG&#93;; //tablica<br />uint8_t *pasek2 = (uint8_t*)ws_rgb_leds;[/syntax]<br /><br />I oczywiście dwie struktury TWSRGB1 i TWSRGB2.<br /><br />Czy wysłanie 2x ws281x_asm_send powoduje miedzy nimi jakaś przerwę (interpretowaną jako reset dla ws2812)?<br /><br /><a href="https://obrazkiforum.atnel.pl/3859/8edba58e88ef0b4ff90b977821e9053a.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/3859/8edba58e88ef0b4ff90b977821e9053a.png" alt="Obrazek" /></a><br /><br />Nie ma oscyloskopu, wiec nie mam zbytnio jak to sprawdzić.<br />Chyba ze ktoś ma inny sposób na przechowanie i wysyłanie dwóch lub więcej efektów na raz..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 18 gru 2015, o 08:49</p><hr />
]]></content>
</entry>
</feed>