niedziela, 20 kwietnia 2014

WS2812 - MAGIC RGB LED - PART 06a

Witam,

Po nieco długiej przerwie a także po uprzednim przygotowaniu sobie gruntu pod tą część poradnika na temat obsługi Magic LED'ów w postaci poradnika o wstawkach asemblerowych LINK1 oraz LINK2 ... przyszedł czas na kolejną część. Naturalnie przedłużyła się ona niemiłosiernie a więc zmuszony byłem podzielić ją na dwie co najmniej mniejsze części 06a oraz 06b (mam nadzieję, że już nie 06c ;) ... to się okaże podczas dalszego montażu video). Rzeczywiście tym razem schodzimy na dno piekieł czyli do "groźnego" asemblera, ale wszystko w słusznym celu czyli po to aby osiągnąć w końcu upragnioną maksymalną prędkość transmisji danych w protokole NZR służącym do sterowania łańcuchami tych naszych ślicznych diod LED. Tym razem w dwóch częściach omówimy sobie na razie - samą wstawkę, jej kod asemblerowy a także pewne niuanse wynikające z faktu że niektóre mikrokontrolery AVR takie jak chociażby ATmega128 (na której prowadzę ćwiczenia) posiadają część portów z tzw "adresowaniem pośrednim", co może stanowić dość poważny problem dla początkujących w asemblerze - jeśli chodzi o dostęp do tychże portów. Na szczęście nie pominę tego milczeniem i omówię co należy zrobić aby pozbyć się tej kłopotliwej sytuacji ...

wtorek, 15 kwietnia 2014

KUŹNIA Świnoujście - piko zlot z super TORTEM

Witam,

Nie wiem od czego zacząć, ponieważ do dzisiaj nie mogę ochłonąć po wizycie w Kuźni. Zaraz wyjaśnię co to jest Kuźnia, teraz dodam tylko, że ja razem z Michałem (nick z forum: micky), mieliśmy zaszczyt dostać zaproszenie do Kuźni. Nie wiem czy uda mi się oddać ziemskimi słowami co to jest Kuźnia ale spróbuję. Kuźnia to przede wszystkim WSPANIALI LUDZIE czyli Bartek, Tymek, Andrzej i Krzysiek. Stworzyli oni sobie swoje własne wymarzone miejsce spotkań gdzie mogą realizować swoje hobby, pasje, pomysły, gdzie mogą się wspólnie uczyć nowych rzeczy, programowania mikrokontrolerów ale także dobrze się przy tym bawić i odpoczywać, pomimo tego że nie jedną nockę już zarwali na kuźni. Gdybym tylko mógł, uwierzcie mi, spędzałbym z nimi każdą wolną chwilę, szkoda że dzieli nas taka odległość ... choć z drugiej strony, co to jest 100 km ? ;) Kuźnia to ciepło, prawdziwa przyjacielska atmosfera .... gość czuje się od razu jak w swoim elektronicznym domu z marzeń, że tak powiem ;) Teraz kilka słów o samym spotkaniu. Muszę przyznać, że jestem pod gigantycznym wrażeniem jak ono zostało przygotowane i zaplanowane przez mistrzów Kuźni. Jak wiecie ... a może nie wiecie, Świnoujście to także przeprawa promowa i troszkę czasu zwykle trzeba aby przedostać się do Kuźni i z powrotem do centrum. Nie mniej jednak organizacja ...

poniedziałek, 14 kwietnia 2014

Bluebook na krańcach świata - KONKURS


Witam, chciałbym na początku roku 2014, ogłosić nowy konkurs, pod tytułem "Bluebook na krańcach świata". Za chwilę wyjaśnię szczegóły i zasady konkursu, a teraz wspomnę o nagrodzie głównej. Otóż zwycięzca konkursu otrzyma w nagrodę zestaw ATB 1.04 w postaci pakietu LEO - LINK do sklepu firmy Atnel. Poza tym w nagrodę za drugie i trzecie miejsce laureaci otrzymają po jednym egzemplarzu książki pt. "Język C Pasja programowania mikrokontrolerów 8-bitowych". Jeśli będzie większa ilość zainteresowanych, to laureaci do końca pierwszej dziesiątki otrzymają licencję na program MkAvrCalculator. (W przypadku dużej ilości uczestników i ostrej konkurencji, pula nagród może zostać poszerzona/powiększona) ;) Będzie to bardzo nietypowy konkurs, i dlatego czas jego rozstrzygnięcia datowany będzie na koniec wakacji, czyli na 31 października 2014, tak aby każdemu dać szansę wykazania się w tej konkurencji ;) W dalszej części artykułu zostaną opisane dokładne zasady konkursu i uczestnictwa:

sobota, 12 kwietnia 2014

Łączyć MASY urządzeń cyfrowych czy nie łączyć ?

Witam,

Tym króciutkim poradnikiem (takim troszkę "na luzie" i z lekkim przymrużeniem oka) chciałbym raz na zawsze uciąć dywagacje i łamigłówki początkujących osób, które nie mają jeszcze doświadczenia w elektronice ale zaczynają stawiać swoje pierwsze kroki w programowaniu mikrokontrolerów. O ile programowanie zaczyna wychodzić, to jednak zdobywanie wiedzy elektronicznej idzie czasem wolniej i okupione bywa w swoich początkach dość przykrymi niespodziankami w postaci np przysłowiowego "SPALENIA" czy to układów scalonych, czy to tranzystorów lub innych części elektronicznych albo wręcz całych urządzeń jak np programator a niejednokrotnie nawet komputer do którego początkujący podłącza swoje pierwsze wynalazki. Jednym z największych grzechów początkujących bywa właśnie zagadnienie z ŁĄCZENIEM WSPÓLNYCH MAS dwóch urządzeń. Średnio kilka razy na miesiąc pojawia się pytanie, czy np jeśli robię komunikację za pomocą linii RX i TX (RS232) to czy muszę połączyć także masy tych urządzeń ? Albo jeśli podłączam programator do płytki z mikrokontrolerem, która ma własne zasilanie to czy muszę połączyć masy obu tych urządzeń ? .... no i zaczynają się cyrki gdy ....

czwartek, 10 kwietnia 2014

Pułapki programowe - debuger na jednej diodzie LED

Witam,

w związku z dość sporym niezrozumieniem tematu dotyczącego własnych pułapek programowych czy też użycia nawet pojedynczej diody LED do celów debugowania swoich programów, postanowiłem przygotować ten krótki poradnik. Przy okazji zasygnalizuję również jak korzystać z RS232 żeby sobie coś tam debugować w najprostszy z możliwych sposobów przy udziale terminala. Wystarczy nam do tego jedno ale za to (jak się chyba każdy domyśla) podstawowe narzędzie elektronika cyfrowego - czyli przejściówka USB/RS232 albo zwykły RS232. Od dawien dawna był to najstarszy i bodajże najtańszy sposób na debugowanie programu. Dzisiaj chyba wszyscy już prawie młodzi programiści o tym zapomnieli, i jedyne co widzą to gotowe debugery programowe wbudowane np w niektóre środowiska programistyczne, co okupione jest także zwykle koniecznością zakupu sporo droższego programatora sprzętowego. Tymczasem pokażę hmmm przypomnę jak sobie z tym radzić mając tylko dwie własne ręce i kilka prostych pomysłów ;)

niedziela, 6 kwietnia 2014

Wstawki ASM w AVR GCC - część 01

Witam,

Dzisiaj po dość długiej przerwie w kręceniu poradników, chciałbym wam przedstawić dwu- , może trzy- częściowy poradnik na temat tworzenia wstawek asemblerowych w języku C (AVR GCC). Co mnie do tego skłoniło ? W sumie prosta rzecz. Tym razem miałem nakręcić kolejną część poradnika na temat Magic LED'ów. Ale jak się okazało, po wielu próbach - wykładałem się wciąż na wyjaśnieniach dotyczących właśnie wspomnianych w tytule wstawek asemblerowych. Okazywało się bowiem, że muszę przejść przez nie dość szczegółowo aby wyjaśnić istotę działania najniższych procedur służących do sterowania tymi diodami, ale wciąż czegoś mi brakowało. Tym czymś - okazały się przynajmniej jakieś podstawy dotyczące zagadnienia tworzenia takich wstawek. Koniec końców - okazało się, że najpierw nakręcę poradnik niejako oddzielny tematycznie - bo o wstawkach ASM ale jednak ściśle łączący się z Magic LED'ami ;) .... Dzisiaj prezentuję pierwszą taką dość luźną (i troszkę przegadaną na początku) część tego poradnika. Dlaczego przegadaną ? ano dlatego że miałem dłuższą przerwę no i też nie ukrywam że z okazji "piko ZLOTU - LINK" forumowiczów ATNEL, jaki odbył się w Bydgoszczy! ;) Przy okazji dziękuję wszystkim obecnym, że byliście ze mną. ... Mam nadzieję, że za te kilka nadmiarowych minut mnie nie zlinczujecie i spokojnie dotrwacie do początku poradnika. Oczywiście - zaczynam hmmm jakby od zupełnych podstaw w sensie opisania konkretnego przykładu, który najpierw zostanie przygotowany w czystym C a dopiero później w asemblerze jako wstawka. Wszystko to po to aby mieć dobre porównanie jak mają się wstawki asm do C oraz co? jak? i z czym się "zajada" ;)

piątek, 14 marca 2014

Liczby BCD - konwersje - koniec kłopotów ;)

Witam,

Tym poradnikiem chciałbym odciąć się GRUUUBĄ kreską od problemów nie tyle ze sprawą zrozumienia istoty kodowania BCD ale od problemów związanych ze zrozumieniem - jak konwertować sobie takie liczby w KAŻDĄ ze stron. Wielu ludzi żegluje po bezkresnym oceanie internetu w poszukiwaniu tajemniczych funkcji w języku C, które pozwoliłyby im konwertować te liczby BCD na dziesiętne i odwrotnie, szczególnie gdy akurat - niechcący zajmują się budową jakiegoś zegarka opartego o układ RTC ;) ... po co żeglować ? ;) wystarczy zrozumieć BCD ... i samemu UWAGA! w jednej linijce napisać kod do konwersji w każdą ze stron .... Mam nadzieję, że po tym poradniku wiele osób odetchnie z ulgą - wracając z długich wypraw po bezkresie internetu.

czwartek, 13 marca 2014

Maskowanie bajtów - z przymrużeniem oka ;)

Witam,

Chciałbym dzisiaj zaprezentować wam krótki film, ale Uwaga! dozwolony od lat 19,5 ! (tylko dla widzów o mocnych nerwach). Proszę także o wyrozumiałość dla mnie. Ale dobrze - nie uprzedzajmy faktów. Ten mini poradnik będzie dotyczył kwestii maskowania bajtów, tzw masek bitowych. Podejmuję się w taki dość hmm niekonwencjonalny sposób wyjaśnienia - jak można spojrzeć na to zagadnienie chłodnym okiem. No właśnie, w zasadzie wszystko w tym poradniku kręci się wokół oka ;) .... Kłopot jednak, wśród wielu początkujących polega na tym, że czasem dość długo nie mogą zrozumieć pojęcia maskowania, co to znaczy to maskowanie? jaka to operacja i co ona ma na celu ? - pomimo iż niejednokrotnie widzą przykłady programowe. Mimo to ciężko im czasem przejść dalej .... dokąd nie zrozumieją raz na dobre w czym rzecz. Dlatego mam nadzieję, że tym poradnikiem, którego proszę traktować również z przymrużeniem oka, uda mi się ostatecznie rzecz wyjaśnić a maskowanie na zawsze stanie się przejrzyste i zrozumiałe ;)

niedziela, 9 marca 2014

Liczby szesnastkowe - hexadecymalne - PODSTAWY

Witam,

Tym razem już krótko i bez owijania w bawełnę, przechodzimy do omówienia liczb szesnastkowych inaczej mówiąc hexadecymalnych. Naturalnie tematem poradnika będzie także konwersja tych liczb na postać binarną oraz dziesiętną a także odwrotnie z dziesiętnej na szesnastkową. Nie chciałem już dzielić tego poradnika na dwie części i niestety znowu słowo "króciuki" poradnik rozkompresowało mi się do jednej godziny. Mam nadzieję, że wytrzymacie ze mną i że uda mi się przekazać mój punkt widzenia i postrzegania tych liczb a także jak się nimi posługiwać w różnych sytuacjach życiowych. ;) Zapraszam więc do mojej tablicy elektronicznej.

środa, 5 marca 2014

Liczby BINARNE - PODSTAWY

Witam,

to kolejna mała seria hmm cykl mini poradników ale dla totalnie początkujących a może nawet dla osób, które w ogóle nigdy nie mają zamiaru programować czy też zajmować się elektroniką itp. Za to w szkole mają zajęcia na temat liczb binarnych i muszą zrozumieć o co chodzi, muszą nauczyć się ich konwersji na liczby dziesiętne a także w drugą stronę. Tego tematu nie poruszałem w mojej niebieskiej książce (Bluebooku) ponieważ wydawał mi się zbyt oczywisty, no i myślałem że KAŻDY zna tak prosty sposób na posługiwanie się konwersją liczb binarnych. Tymczasem w wyniku wielu próśb od czytelników i początkujących a także w wyniku sprawdzenia chociażby kilku pierwszych lepszych poradników w internecie czy też podręczników do gimnazjum, okazuje się - że temat ten można podać albo w strasznie (jak dla mnie i dla wielu pewnie) trudny sposób - czyli tylko czysta teoretyczna matematyka z mnóstwem działań, potęgowaniem, mnożeniem, dzieleniem, dodawaniem i odejmowaniem - podczas gdy można to (tak mi się wydaje) pokazać prościej a przede wszystkim PRAKTYCZNIE. W praktycznym zastosowaniu ... na ciekawych przykładach a nie tylko teorii - co może spowodować że sposób obliczeń matematycznych trafi o wiele lepiej i łatwiej do każdego, podkreślam każdego ucznia ;) i nie tylko ucznia. Bo z tego co mi wiadomo z maili na naukę informatyki i programowania NIGDY nie jest za późno i wielu moich czytelników rozpoczyna tą przygodę w bardzo zaawansowanym wieku z czego się bardzo cieszę i jest mi nawet bardzo miło - że to odbywa się również dzięki mojej niebieskiej książce, że udaje mi się zarażać tą tematyką osoby bez żadnego podziału na kategorie wiekowe ....

poniedziałek, 17 lutego 2014

AVR ADC - uśrednianie czyli cyfrowy filtr dolnoprzepustowy

Witam,

To już ostatni odcinek cyklu poradników na temat przetworników ADC w mikrokontrolerach AVR, a jednocześnie można śmiało powiedzieć - trzeci odcinek na temat AVR dla początkujących. Jest to jakby nie patrzeć trzecie podejście do sposobów uśredniania wyników ADC podczas pomiarów. Myślę, że omawiany tutaj sposób może się przydać każdemu a przy okazji, cały cykl, wskaże drogę do odkrywania nowych własnych jeszcze inny i pewnie jeszcze lepszych metod w tym zakresie. Omawiane przeze mnie sposoby mają być po prostu inspiracją ale ten odcinek jest o tyle szczególny, że może być potraktowany jakby całkowicie niezależnie poza serią i przysłużyć się początkującym, którzy chcieliby szybko okiełznać pomiary napięć w prockach AVR. Gorąco polecam ;)