tag:blogger.com,1999:blog-3960927205450249158.post2875094611073304714..comments2024-03-28T09:15:15.977+01:00Comments on mikrokontrolery avr język c, poradniki, kursy video - eagle: WS2812 - MAGIC RGB LED - PART 03mirekk36http://www.blogger.com/profile/11690797724225993397noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-3960927205450249158.post-9448077901988874022017-08-14T12:14:18.029+02:002017-08-14T12:14:18.029+02:00To już 0x2e dni minęło...To już 0x2e dni minęło...Anonymoushttps://www.blogger.com/profile/02266079568586373345noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-21643213429391615012017-05-29T18:43:11.346+02:002017-05-29T18:43:11.346+02:00Za kilka dni pojawi się link do pobrania koduZa kilka dni pojawi się link do pobrania kodumirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-23604064889915742722017-05-29T11:04:35.590+02:002017-05-29T11:04:35.590+02:00Witam. Podpowiedzcie proszę, czy i gdzie znajdę go...Witam. Podpowiedzcie proszę, czy i gdzie znajdę gotowy kod w C (tak coby samemu nie przepisywać na podstawie video). Ma to swoje zalety, ale mimo wszystko fajnie byłoby mieć pod ręką oryginalne źródła, czy to w postaci finalnej, czy to na etapie np. z odcinka 3.Mariusz Ciszewskihttps://www.blogger.com/profile/01865529500538540410noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-92013164832293421152014-01-30T09:19:41.081+01:002014-01-30T09:19:41.081+01:00Witam
Odnośnie czasów 400ns i 800ns - taki pomysł...Witam<br />Odnośnie czasów 400ns i 800ns - taki pomysł wpadł mi do głowy.<br />Napisać taki programek żeby policzył faktyczny czas stanu wysokiego i stanu niskiego dla zadanych parametrów np 100 cykli. Jak poda czas 100 cykli to można wyliczć "współczynnik wydłużenia".Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-69883233126936466432014-01-24T07:54:28.187+01:002014-01-24T07:54:28.187+01:00Kto wie? ... kto wie? ... ;)Kto wie? ... kto wie? ... ;)mirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-33344484637491444302014-01-24T07:23:44.197+01:002014-01-24T07:23:44.197+01:00a może by tak w przyszłości LED-CUBE ;) ?a może by tak w przyszłości LED-CUBE ;) ?Radek Bhttps://www.blogger.com/profile/01746227388052718640noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-12064299983449153732014-01-23T12:10:16.459+01:002014-01-23T12:10:16.459+01:00Ale poczekaj - przeczytaj dobrze to co piszę wyżej...Ale poczekaj - przeczytaj dobrze to co piszę wyżej, jeszcze raz obejrzyj animacje .,..... bo <br /><br />ad.1) .... RESET nie wysyłamy po 3 wagonikach do diody .... rozumiesz ? RESET wysyłamy na magistralę po wysłaniu WSZYSTKICH WAGONIKÓW, WSZYSTKICH ;) .... czyli do WSZYSTKICH DIOD halo halo ;) wszystkich diod ... ok?<br /><br />ad 2. .... jak widzisz z uwagi na to co napisałem wyżej to pytanie jest bezzasadnemirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-42854734341373860012014-01-23T11:44:30.562+01:002014-01-23T11:44:30.562+01:00to mam jeszcze 2 pytania.
1) Jeżeli stworzymy nad...to mam jeszcze 2 pytania.<br />1) Jeżeli stworzymy nadrzędną funkcję i z jakiś powodów przekroczymy czas "reset" pomiędzy wysyłaniem kolejnych "wagonów" to wtedy stanie się tak że będziemy sterować tylko pierwszą diodą bo potem cała reszta uzna że nastąpił reset i zaczynamy zabawę od początku? <br />2) skoro reset=50us czy to oznacza ze jeżeli wyrobimy się np. w 30us z podaniem kolejnego bajtu to nie zresetujemy magistrali(mieli byśmy wtedy 30.000/90 rozkazów do wykożystania co daje nam drobne pole do działania w inny sposób)? czy taka tolerancja jest do zaakceptowania przez ws2812? ja rozumiałem że transmisja kolejnego bitu musi następować prawie natychmiast po poprzednim. Z drugiej strony to jak szybko działa funkcja send_byte() określa nam maksymalną długość paska led oraz płynność animacji. wiec optymalizacja jest wskazana. przy 20 metrach paska (średni pokoik bądź ekran 34x34cm czyli mały ) i częstotliwości pracy ok 30us wychodzi mi że mamy odświeżanie obrazu na poziomie 108 ms czyli 9,25 Hz. więc kiszka taki obraz będzie mało płynny dla naszego oka. trzeba optymalizować.<br /><br />ps. kiedy następna część bo nie będę mógł spać?? Anonymoushttps://www.blogger.com/profile/05087560505121268967noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-42990102716920552462014-01-23T10:57:26.620+01:002014-01-23T10:57:26.620+01:00Sama idea tak do przynajmniej teoretycznego rozważ...Sama idea tak do przynajmniej teoretycznego rozważania i podejścia jest jak najbardziej słuszna, niestety takie działanie z tablicą która miałaby przechowywać bity spowodowałoby już bardzo duże rozjechanie się czasówki i byłby zonk ... ale już w kolejnym odcinku zobaczymy jak do tego podejść i super, że ktoś pokusił się o takie podejście ... Bo np na forum.atnel.pl koledzy na razie próbują ot po prostu "z ręki" w sposób bardzo liniowy wysyłać jakieś sekwencje bitów ... ale nikt się tam jeszcze nie pokusił o ubieranie tego w jakieś nadrzędne funkcje do wysyłania paczek (wagoników) ... więc ten przykład będzie dobrym wstępem do treningu i lepszego zrozumienia ...<br /><br />Jeśli wyślesz do wszystkich diod a będzie ich nawet 50 - to oczywiście, że każda będzie wciąż świecić i nie zgaśnie ... będzie świecić z takim PWM jaki został jej ostatnio zadany. Natomiast przestać świecić może tylko w dwóch przypadkach:<br /><br />1. wyłączenie zasilania<br />2. ponowna zmiana PWM na ZEROmirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-23035824364025730032014-01-23T10:22:07.484+01:002014-01-23T10:22:07.484+01:00ok w takim razie popełniłem błąd. bo umaniło mi si...ok w takim razie popełniłem błąd. bo umaniło mi się w głowie że na 1 diodę przypada 1 bajt. i to w sumie jest prawda ale w 1 diodzie są 3 (GRB) i każda powinna dostać po 1 bicie. krótko mówiąc albo zmienną ilość_diod trzeba po mnorzyć przez 3 albo tablicę utworzyć w taki sposób byte[ilosc_diod][ciągem 3 bajty dla 1 punktu świetlnego]. i dodać kolejne wpisy <br />if ( bajty[counter][8 do 23 ]=="0") send_zero();<br />else send_one();<br /><br />tak na marginesie ciekaw jestem czy blisko byłem poprawnej funkcji? wiem że nie chodzi tu o same wywołania bo to można załatwić na wiele sposobów tylko o to czy zmieściłem się w czasie 1200 ns i czy dobrze myślę? Na razie nie przetestuję swojego bazgrołu bo czekam na kwarc. Mam atmegę8 a odradzał Pan kwarce 8MHz wewnętrzne wiec kupię taki jak w poradniku.<br /><br />Pytanie dodatkowe. jeżeli wyślę dane do wszystkich diod i w ogóle przestanę na dawać to co się stanie? diody pozostaną w ostatnim nadanym im stanie czy pogasną? jest to o tyle istotne bo jeżeli pozostaną w ostatnim nadanym im stanie to przy wysyłaniu jednocześnie nie po bajcie tylko całość danych dla wszystkich diod możemy olać reset (co starałem się osiągnąć). i wysyłać całe dane co dowolny czas. Anonymoushttps://www.blogger.com/profile/05087560505121268967noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-21451426927094714552014-01-23T06:15:01.816+01:002014-01-23T06:15:01.816+01:00i SUPER!, że kolega próbuje tworzyć takie kody ......i SUPER!, że kolega próbuje tworzyć takie kody ... bo na prawdę później będzie łatwiej. Ja tylko SPROSTUJĘ / PODPOWIEM,. że<br /><br />... ten RESET = 50us dotyczy czasu po przesłaniu CAŁEGO POCIĄGU WAGONIKÓW ja z poprzedniego poradnika a nie po przesłaniu każdego bajtu. Czyli dla przykładu jak mamy dwie diody w łańcuchu to RESET przyjdzie po 6 bajtach ale gdy mamy 3 diody w łańcuchu to RESET przyjdzie po? ...<br /><br />.... po 9 bajtach - to istotna rzecz. Od razu trzeba się z tym oswajać ;)mirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-91880896087675184732014-01-23T04:51:45.739+01:002014-01-23T04:51:45.739+01:00to ja podejmę "próbę" "napisania&qu...to ja podejmę "próbę" "napisania" funkcji wysyłającej bajty. Zabawę z mikrokontrolerami i programowaniem zacząłem miesiąc temu więc proszę o skrajną wyrozumiałość. nie napiszę striktę kodu tylko opiszę słowami co probował bym osiągnąc.<br /><br />1) po pierwsze powinna być static żeby jej kod był wpisywany w miejsce wywołania. i powinna nazywać się narazie send_byte() -- (jednak upartuję tutaj błąd o czym powiem poniżej w punkcie 2) <br />2) ponieważ oglądając wcześniejsze poradniki dosłuchałem się że istnieje też komenda "reset" czyli nieaktywność na lini przez określony czas więc nie dość że mamy kaganiec na szyi związany z wywołaniem funkcji send_zero() lub send_one() ale mamy kaganiec taki że przerwy w wywołaniu funkcji send_bye() powinny być poniżej czasu "reset" ws2812 dlatego optował bym dla ułatwienia sobie sprawy napisać funkcję ktora odrazu wyśle WSZYSTKIE potrzebne nam bajty. <br />3) powinniśmy przekazywać wskażniki do zmiennych a nie same zmienne żeby nie tracić cennych tików procesora na tworzenie kopi zmiennej w pamięci lub inne znią problemy\<br />4) powiniśmy stworzć sobie tablicę dwu wymiarową [ilość _diod][8 znaków same 0 lub 1]i po przygotowaniu wysłać wskaźnik do niej.<br /><br />czyli funkcja powinna wyglądać.(tak jak mówilem to nie kod w C tylko opis:P)<br /><br />static void send_bytes (*int ilosc_diod, *char bajty[]) <br />int counter=0; // zabierze nam jeden tik zegara wiec uwzględniamy to w asm"nop" w funkcjach send_zero() i send_one();<br /><br />while (counter<ilosc diod) // sprawdzenie warunku też nam zabiera czas procesora więc znowu -1x asm"nop";<br />{<br /> if ( bajty[counter][0]=="0") send_zero(); \\kolejny warunek wiec -1x asm"nop" :( <br /> else send_one();<br />//aby nie marnować tików na pentle i warunki to to robimy ręcznie kolejnych 7 bitów<br /> if ( bajty[counter][1]=="0") send_zero(); <br /> else send_one();<br /> if ( bajty[counter][2]=="0") send_zero(); <br /> else send_one();<br /> if ( bajty[counter][3]=="0") send_zero(); <br /> else send_one();<br /> if ( bajty[counter][4]=="0") send_zero(); <br /> else send_one();<br /> if ( bajty[counter][5]=="0") send_zero(); <br /> else send_one();<br /> if ( bajty[counter][6]=="0") send_zero(); <br /> else send_one();<br /> if ( bajty[counter][7]=="0") send_zero(); <br /> else send_one();<br /> // i wysłaliśmy 1 byte. czyli obsłużyliśmy tylko 1 diodę. teraz zwiększamy counter o 1 powtarzemy to dla wszystkich diod; <br /> counter++<br />{<br /><br /><br />w ten sposób wysłaliśmy informację do wszystkich diod więc powinnyśmy wykonać komendę reset polegającą na "nie narawaniu" porze jakiś czas. ale prawdopodobnie zanim przygotujemy kolejny komplet bitów do tablicy bajtów to reset wykona się mimo woli. wiec olewamy i zajmujemy się planowaniem kolorków do następnego wywołania funkcji send_bytes( .. ).<br /><br />tyle. tak jak powiedziałem jest to opis dzalania a nie kod wiec proszę nie probować tego kompilowac :PAnonymoushttps://www.blogger.com/profile/05087560505121268967noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-67845857133974818812014-01-22T08:41:04.895+01:002014-01-22T08:41:04.895+01:00Super, coś zaczyna się dziać w kodzie, jak na razi...Super, coś zaczyna się dziać w kodzie, jak na razie ogarniam co robimy. Świetny poradnik Panie Mirku!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-89233004434214888142014-01-21T23:19:14.374+01:002014-01-21T23:19:14.374+01:00Nie masz Mirku za co dziękować to my dziękujemyNie masz Mirku za co dziękować to my dziękujemyMajsterhttps://www.blogger.com/profile/04774624425947617097noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-41440004126614583152014-01-21T23:13:38.355+01:002014-01-21T23:13:38.355+01:00Dziękuję za ten poradnik i za wszystkie inne na ty...Dziękuję za ten poradnik i za wszystkie inne na tym wspaniałym Blogu .PICmajsterhttps://www.blogger.com/profile/17936691699166721373noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-66119833075421125302014-01-21T20:44:52.826+01:002014-01-21T20:44:52.826+01:00Niestety ale trzeba być zalogowanym na google+ by ...Niestety ale trzeba być zalogowanym na google+ by móc dawać komentarze , łapki w górę etc...<br />Założenie konta w google nie wiąże się z jakąś tam utratą prywatności. <br />Przecież nie musi się wyświetlać nazwisko i imię a sam login itp<br />Sam jest by chronić prywatność. Choć w dobie internetu to raczej trudne :)<br /><br />PozdrawiamAnonymoushttps://www.blogger.com/profile/07256083283538021572noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-34896049879255256522014-01-21T19:53:01.241+01:002014-01-21T19:53:01.241+01:00Mój Nick Piotr. Po oglądnięciu trzeciej części i n...Mój Nick Piotr. Po oglądnięciu trzeciej części i nie tylko. Stwierdzam że Mirek posiada wielką wiedze i potrafi to przekazać. Anonymoushttps://www.blogger.com/profile/17985623275711950953noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-74816807011440369042014-01-21T19:31:23.094+01:002014-01-21T19:31:23.094+01:00Świetny poradniczek . Mirku dziękuję że się nie po...Świetny poradniczek . Mirku dziękuję że się nie poddajesz ,no i czekam na kolejne poradniki . Pozdrawiam.Anonymoushttps://www.blogger.com/profile/03820945854240835583noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-42398010017998007732014-01-21T18:11:36.076+01:002014-01-21T18:11:36.076+01:00eeeeh powiem tak .... dzisiaj zasiadłem do kompa i...eeeeh powiem tak .... dzisiaj zasiadłem do kompa i włączyłem widok statystyk ... i przysięgam aż mi się łza w oku pojawiła - bo teraz widzę że zareagowaliście ... Np na YT wzrost kliknięć od was o 600% !!! to pokazuje - że wcześniej Was tak jakby nie było :( ... więc nie ma co się dziwić, że Was nie widziałem ... W końcu pokazała się np wyraźna różnica między negatywami (łapka w dół - czyli głosowaniami malkontentów a zadowolonymi)<br /><br />Uwierzcie mi - ten wzrost - chociaż nie wiem czy się utrzyma - ale bardzo mi pomoże ... tzn mam taką nadzieję ... już teraz odnotowałem kilka telefonów do firmy z zapytaniem o książkę bo ktoś się właśnie z YT dowiedział o moich książkach ...<br /><br />to że piszecie, to że klikacie w łapki czy plusiki na google plus, na facebooku, to że udostępniacie ... to na prawdę działa i teraz widać przynajmniej zaczątki tego .... <br /><br />teraz zaczynam lepiej czuć że jesteście ze mną, widzę też że zaczyna działać reklama tego co robię - i to dzięki TYLKO WAM ... <br /><br />dziękuję uprzejmiemirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-78846713580833874602014-01-21T18:02:29.022+01:002014-01-21T18:02:29.022+01:00A ja tam założyłem konto i klikam ... by mirek wie...A ja tam założyłem konto i klikam ... by mirek wiedział że warto robić takie super poradnikiMajsterhttps://www.blogger.com/profile/04774624425947617097noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-4202284220056184822014-01-21T12:42:48.629+01:002014-01-21T12:42:48.629+01:00Cieszę się Mirku iż odzyskałeś pozytywne nastawien...Cieszę się Mirku iż odzyskałeś pozytywne nastawienie. Ze swojej strony mogę obiecać iż będę klikał ikonkę "g +1" przy każdym nowym filmiku. Mnie osobiście się ten poradnik nie przydał ale oglądałem go z wielkim zaciekawieniem. Osobiście jestem najbardziej zainteresowany zagadnieniem transmisji CAN BUS. Mam nadzieję iż znajdziesz kiedyś czas na i taką serią. Tak czy siak, czy ta seria powstanie czy nie, zawsze będę Twoim wielkim fanem i klientem Twojego sklepu.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-51610306018120137732014-01-21T05:35:32.693+01:002014-01-21T05:35:32.693+01:00A możliwe, że tak .... ale jeśli kolega nie chce z...A możliwe, że tak .... ale jeśli kolega nie chce zakładać konta na plus google to nie ma sprawy, rozumiem to ... Bo rzeczywiście chyba założenia konta nie uda się kliknąć.mirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-28514711380120145582014-01-21T01:16:43.505+01:002014-01-21T01:16:43.505+01:00Mam pytanko, czy muszę założyć konto na google+ że...Mam pytanko, czy muszę założyć konto na google+ żeby to działało bo klikam i klikam i tylko stronas logowania mi się wyświetla :(Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-15498978836029669522014-01-21T00:13:08.196+01:002014-01-21T00:13:08.196+01:00Panie Mirku,super.Dzięki wielkie za trzecią część,...Panie Mirku,super.Dzięki wielkie za trzecią część,pozdrawiam,Piotr.Anonymousnoreply@blogger.com