Ads_700x200

niedziela, 30 czerwca 2013

Przetwornik ADC w AVR - część 04

Witam,

Nadeszła kolejna część poradnika. Teraz będziemy się bawili w terminatora, którego zadaniem będzie bezwzględna walka z tzw. skaczącymi napięciami i wartościami ADC ;) . Zaprzęgniemy do tego celu różne metody. O niektórych już tak na prawdę rozmawialiśmy w poprzednich częściach poradnika, czyli np o prawidłowej filtracji zasilania bo złe podejście do tematu w tym zakresie, to właśnie podstawowa pożywka dla tych sprężynujących wartości, że tak powiem. Ale spokojnie są jeszcze inne metody, które należy stosować wraz z filtracją. Powalczymy więc ze średnimi arytmetycznymi ale także wytoczymy grubsze działa (przynajmniej z nazwy) ;) ... czyli np zastosujemy tzw cyfrowy filtr dolnoprzepustowy (ale nie obawiajcie) się to nie jest trudne - zobaczycie. A także inne metody. Mam nadzieję, że takie praktyczne podejście być może wam się kiedyś przyda w waszych projektach i rozważaniach. Należy mieć jednak na uwadze, że ja tu mówię o podstawach, które trzeba koniecznie zrozumieć raz a dobrze, dopiero wtedy można myśleć o bardziej zaawansowanych projektach, z którymi już dalej sami dacie sobie radę. Jeśli czegoś nie poruszę w tym cyklu poradników to mam nadzieję, że dalej już sami doczytacie i nie będzie to sprawiało już takich kłopotów jak na samym początku, gdzie nie wiadomo było w co w ogóle ręce włożyć ;)

sobota, 29 czerwca 2013

AVR GCC - SINUS TABLE - TRICK

Witam,

Dzisiaj chciałbym wam przedstawić odkrycie jakiego dokonał nasz niesamowity kolega z forum (www.forum.atnel.pl) o nicku Krauser. Myślę, że warto dołączyć taką informację tu na bloga bo rzeczywiście TRICK jest niesamowity a można go oczywiście stosować tak na prawdę nie tylko w AVR GCC ale praktycznie chyba w każdym kompilatorze języka C dla różnych procków. Więc myślę, że tym bardziej przydatne jest to odkrycie no i fakt podzielenia się z nami tym trickiem. Kolega Krauser napisał nawet przykładowy kod źródłowy, który służy lepszemu zrozumieniu i zaskoczeniu o co tu chodzi. Polecam więc ten wątek na naszym forum. Myślę że przydatny może się okazać bardzo często gdy będziemy chcieli skorzystać ze stablicowanych wartości sinusa ;) .... a ciężko bawić się w jakieś przygotowywanie takich tablic a to w Excelu a to w innym zewnętrznym programie i wstawianie ich do naszego kodu. Tu wszystko czyli całą tzw czarną robotę wykona za nas preprocesor, któremu niejako niechcący podrzuci się hahaha jakby kukułcze jajko ;) a on je wysiedzi i wykluje się z tego ładna tabliczka wartości sinusa w pamięci np FLASH. No Super sprawa.

czwartek, 27 czerwca 2013

Przetwornik ADC w AVR - część 03

Witam,

Tym razem króciutko, zapraszam na kolejną czyli trzecią już część poradnika do ADC. Zgodnie z zapowiedzią tym razem zajmiemy się już kodami źródłowymi, nie mniej jednak jak to zwykle bywa zanim powiem o ADC poruszymy temat np najprostszej komunikacji (i to tylko wysyłanie) przez RS232. Związane jest to z tym, że chciałem uprościć sobie konstrukcję układu testowego na płytce stykowej i mam nadzieję, że przy tej okazji przekonam ciebie także do tego aby coraz częściej korzystać z terminala przy wszelkich pracach z mikrokontrolerami. Natomiast poprzez to, że zastosuję prostą bibliotekę do terminala jako LCD, którą przedstawiłem na moim blogu, chciałbym zwrócić uwagę - że może być wam jednak ciężko użyć do takiego ćwiczenia innych terminali niż PUTTY, którego ja z lubością używam. Wiem, chociaż nie rozumiem, dlaczego wielu z was zamiast z putty korzysta z innych prostszych terminali, to okaże się właśnie że ta większość innych nie potrafi obsługiwać standardu VT100 :( .... a pokażę wam przy okazji najbliższych poradników że korzystanie z tych właściwości VT100 na prawdę dużo daje i postaram się was tym "zarazić" ;) A przecież zobaczycie że mając taką gotową biblioteczkę to korzystanie z tego staje się banalnie proste ;)

środa, 19 czerwca 2013

Eclipse WinAVR i Atmel - DWA w JEDNYM

Witam,

Tym razem chciałbym OSTATECZNIE podkreślam ostatecznie rozprawić się z problemami jakie jeszcze macie z instalacją Eclipsa i to w połączeniu albo z WinAVR albo z Atmel Toolchainem. W tym poradniku pokażę Wam, w jaki sposób można prosto żonglować jednym i drugim, jak je podmieniać, na co zwracać uwagę i dlaczego to ZAWSZE musi działać dobrze ;) ... do nakręcenia tego szybkiego ostatecznego poradnika skłoniła mnie stosunkowo duża ilość maili i pytań od początkujących, którzy najczęściej po obejrzeniu poprzedniego poradnika: http://mirekk36.blogspot.com/2012/11/instalka-eclipse-atmel-toolchain.html . A spowodowane one były błędem pytających polegającym na tym iż masowo wielu z nich pomijało dziwnym trafem NAJWAŻNIEJSZY punkt tego poradnika, dotyczący wgrania pliku tzw patcha dla PluginaAVR do Eclipse. Myślę że od teraz będzie koniec kłopotów i każdy z powodzeniem będzie używał dowolnej wersji Eclipsa z dowolnym toolchainem. Powodzenia. Zaprasza do oglądania materiału video...

niedziela, 16 czerwca 2013

Smart RUN - nowa funkcjonalność w MkAvrCalculator

Witam,

Jak to mówią, nowy dzień - nowa funkcja ;) ... i tym sposobem, zgodnie z oczekiwaniami wielu użytkowników tego programu powstała nowa funkcjonalność pod tajemnicą nazwą "Smart RUN". O co chodzi? Otóż pod prawym klawiszem myszy w obszarze całego programu mamy dostępne małe Menu, dzięki któremu można przyporządkować ścieżki i uruchamiać kilka różnych programów z jednego miejsca. Zaliczają się do nich pozostałe aplikacje firmy Atnel jak: MkBootloader, ATB Manager, Pixel Factory ale także można uruchamiać dwie różne własne wersje Eclipsa np z toolchainem WinAVR albo Atmel. To nie wszystko - jest coś dla ludzi posługujących się Bascomem a także możliwość definiowania dwóch własnych programów. Co ciekawe każdy z nich można uruchomić nawet bez klikania mychą tylko za pomocą klawiszy funkcyjnych F1 do F8 - spora wygoda ;) Po pierwszym uruchomieniu gdy nie ma przypisanych ścieżek, program nic nie uruchomi tylko właśnie od razu zapyta o ścieżkę. Gdy już wszystkie ustawimy to jak je ew zmienić ? oto jest pytanie :) ... ale i poniżej odpowiedź 

piątek, 14 czerwca 2013

Przetwornik ADC w AVR - część 02

Witam,

Nadszedł w końcu czas na część drugą. Uprzedzam, że tu jeszcze nie przejdziemy do pisania kodu źródłowego ponieważ jeszcze parę rzeczy musimy sobie wyjaśnić. Od razu uprzedzam że to poradnik dla początkujących i staram się wiele spraw tłumaczyć w dużym uproszczeniu. Dlatego osoby, które znają ADC mogą sobie darować ten odcinek ;) 
zapraszam zatem do obejrzenia krótkiego materiału wideo, czas to niewiele ponad pół godziny. W przypadku pytań i wątpliwości proszę oczywiście o zadawanie pytań. Gdzieś tam "po drodze" popełniłem mały błąd, ale w trakcie montażu wstawiłem napis wyjaśniający bo nie miałbym już siły kręcić tego od nowa ;)

czwartek, 13 czerwca 2013

LCD (hd44780) Font Generator w MkAvrCalculatorze

Witam,

Tym razem chciałbym wam zaprezentować kolejne już i nowe narzędzie w jakie został uzbrojony MkAvrCalculator. Jest to może zbyt szumnie zwany LCD Font Generator dla typowych wyświetlaczy alfanumerycznych LCD opartych o sterownik HD44780, to jednak stanowi bardzo przyjemne narzędzie do projektowania własnych dowolnych znaków ale nie tylko .... O co chodzi ? Zastosowałem bardzo nietypowy jak dla takich programików (bo przecież jest ich wiele w necie) interfejs użytkownika, ale za to niesamowicie intuicyjny i pozwalający na jednoczesne projektowanie aż do 8 znaków ! A skoro tak - to oznacza, że teraz jeśli ktoś chce zaprojektować sobie prostą semi-grafikę (czyli jakiś obrazek widoczny np na kilku sąsiadujących ze sobą znakach - to nie ma problemu ;) ... Dodatkowo na pierwszy rzut oka wydaje się, że brak w interfejsie użytkownika podglądu (w pomniejszeniu) projektowanych znaków - a to przecież często się przydaje ...

poniedziałek, 10 czerwca 2013

AVR Timer Calculator - NEW TOOL

Witam,

To już kolejny ważny update programu MkAvrCalculator "build 42", tym razem zdobył on kolejne istotne narzędzie w postaci kalkulatora timerów w mikrokontrolerach AVR. Wystarczy tylko wprowadzić wejściowe dane takie jak częstotliwość taktowania F_CPU oraz częstotliwość (interwał czasowy) z jaką ma się timer przepełniać. Co ważne kalkulator oblicza zarówno wartość rejestrów OCRx dla trybu CTC ale także wartość jaką trzeba przeładować timer w trybie NORMAL, gdy timer nie posiada trybu CTC (np w ATmega8 - Timer0). Program bierze pod uwagę obliczenia zarówno dla timerów 8-bitowych jak i 16-bitowych. Jako wynik obliczeń widzimy tabelkę w której po lewej widać listę preskalerów. (Uwaga! nie każdy timer posiada wszystkie pozycje preskalera - więc tu trzeba zawsze zajrzeć do noty PDF procka i sprawdzić jakie preskalery z tej listy posiada interesujący nas Timer a następnie wybrać ten który jest i odpowiada nam częstotliwość). Na koniec (pod tabelką) mamy obliczoną częstotliwość rzeczywistą jaka wyjdzie dla każdego preskalera i wartości OCRx lub przeładowania, a także (jeszcze niżej) obliczony procent błędu (odchyłka od częstotliwości zadanej). 

niedziela, 9 czerwca 2013

Przetwornik ADC w AVR dla początkujących

Witam,

Tym razem chciałbym rozpocząć taki mały cykl poradników w których omówię kilka ważnych aspektów korzystania z przetworników analogowo-cyfrowych ADC, wbudowanych w mikrokontrolery AVR. Przy tej okazji poruszę także poboczne kwestie z tym związane jak np rezystorowe dzielniki napięcia ale także sposoby na ustabilizowanie pomiarów, liczenie średniej kilkoma metodami. Omówię co to są napięcia odniesienia i dlaczego trzeba z nich korzystać. Pokażę także ciekawe zastosowanie na przykładzie klawiatury analogowej. Mam nadzieję, że przykłady pokazywane w kodach źródłowych wraz z całym wykładem będą stanowiły przydatną dawkę informacji dla wielu oglądających, dlatego zapraszam.

sobota, 8 czerwca 2013

Gdy nie działa USBASP pod ECLIPSEM

Witam,

Tym razem króciutki tylko kilkunastominutowy poradnik VIDEO odnośnie problemów jakie początkujący miewają gdy po raz pierwszy zabierają się za ECLIPSE i jednocześnie korzystają z programatora USBASP. Bardzo często rodzi się wśród nich pytanie typu: "dlaczego nie działa mi USBASP pod Eclipsem? pojawia się błąd rc=-1, natomiast w programie MkAvrCalculator procesor jest wykrywany". Dokładnie na to pytanie znajdziecie odpowiedź a może jeszcze na kilka innych ;) Zapraszam więc do obejrzenia materiału:

środa, 5 czerwca 2013

wtorek, 4 czerwca 2013

Win8 prosty program a cieszy - WinPWR

Witam,

Tym razem króciutko ;) w związku z tym iż będąc ZMUSZONYM musiałem przejść na Windows 8, okazało się że dostanie się do klawisza wyłączającego zasilanie z poziomu pulpitu bo na kafelkach w ogóle nie pracuję, graniczy z cudem :( ... trzeba się przeklikać przez dziesiątki poziomów ... aby po prostu ot wyłączyć czy zrestartować komputer. Postanowiłem napisać super prosty ale jak dla mnie użyteczny programik MkWinPWR, który siedzi sobie na pulpicie i od razu CYK, i wybieramy zamknij, restart, hibernacja albo uśpienie. Działanie IDENTYCZNE z systemowym więc spokojnie - w razie czego windows zapyta przed zamknięciem czy np zapisałeś coś tam w swojej aplikacji a jeśli nie to da sobie na wstrzymanie. Być może komuś z was także się przyda, więc zapraszam do pobierania. Dodam, że działa tak na prawdę w KAŻDYM systemie Windows począwszy od Win XP. Po niewielkim Update programu dodałem jak widać na obrazku jeszcze możliwość hibernacji systemu, która w przypadku akurat Windows8 bardzo ładnie działa. Można go wykorzystywać nawet do celów komercyjnych za FREE ;) ... miłego użytkowania jak coś. poniżej link skąd go można pobrać:

niedziela, 2 czerwca 2013

AtmelStudio + MkAvrCalculator = all avrdude programmers

Witam,

Tym razem na prośbę wielu osób, pomimo to iż sam nie przepadam za AtmelStudio 6 to postanowiłem rozszerzyć możliwości tego środowiska, udostępniając możliwość wykorzystania w nim WSZYSTKICH niestandardowych (czytaj nie-atmelowskich) programatorów ;) Wszystko to za sprawą kolejnego update'u programu MkAvrCalculator, który tym razem podobnie jak w Bascomie tak i w AtmelStudio może pełnić rolę BRIDG'a (pomostu) z uwagi na swoje specyficzne i w tych przypadku przyjemne właściwości. Owszem spotkałem się już z wieloma opisami na różnych stronach w internecie jak sobie podłączyć AVRDUDE do AtmelStudio. Ale jest JEDEN WIELKI problem .... uda się bowiem każdemu wywołać program avrdude jako External Tool, uda się każdemu przekazać jako argumenty ... (no właśnie nieszczęsne argumenty) w postaci nazwy programatora, nazwy i ścieżki wsadu HEX, ale ... ale jest ogromny kłopot z przekazaniem nazwy procesora. Tzn może wyrażę się ściślej, jeśli bowiem założyć że chcielibyśmy użyć programatora USBASP w AtmelStudio poprzez "gołe" AVRDUDE, to poza tym,