Strony

środa, 2 listopada 2011

Dlaczego ECLIPSE zamiast AVR Studio ?

Witam,

Od dłuższego czasu spotykam się z opiniami początkujących adeptów programowania mikrokontrolerów (ale nawet nie tylko początkujących), że "na razie wolą pozostać przy AVR Studio zamiast spróbować pracy w Eclipse". Powód? - najczęściej ten sam - ponoć ECLIPSE jest strasznie duże, ciężkie, przepastne, trudne, i korzystają z niego tylko super specjaliści i fachowcy.

BŁĄD! Panowie i Panie - to jest totalnie nieporozumienie. Środowisko Eclipse ma tyle zalet w porównaniu do AVR Studio i jest tak łatwe w opanowaniu jeśli chodzi o podstawy, które umożliwią płynne rozpoczęcie jego użytkowania, a tak niewielu chce w ogóle tego "cukierka" spróbować. ;)

Postaram się nieco przybliżyć to zagadnienie i powiedzieć jak to jest na prawdę z tym przejściem na Eclipse. Przede wszystkim zapewniam, że nie jest to tylko dla orłów ;) a zalety Eclipse szczególnie szybko mogą docenić właśnie początkujący, dla których ma ono w swojej ofercie mnóstwo ciekawych opcji dzięki którym, pisanie kodów źródłowych w języku C dla AVR to poezja. Wręcz śmiało powiem że pomaga w nauce znacznie przyśpiesza ten proces. Dlaczego ? oto jest pytanie....



Przyjrzyjmy się co mamy obecnie do dyspozycji na rynku jeśli chodzi oczywiście o darmowe narzędzia:

1. Programmers Notepad + własnoręczna zabawa/udręka z tworzeniem "makefile"
2. AVR Studio 4.xx
3. AVR Studio 5,6
4. CodeBlocks
5. ECLIPSE w kilku wersjach (Ganymade, Galileo oraz Indigo) z pluginem dla AVR

ad.1) ... nie wiem dlaczego większość początkujących zaczyna właśnie od ProgrammersNotePada dostarczanego w pakiecie WinAVR. Tak pół żartem pół serio określiłbym , że to masochizm i uwielbienie samoudręczania się a także utrudnianie życia ponad miarę. Co rusz na różnych forach widać pytania związane z problemami kompilacji przy korzystaniu z tej metody, a wiążą się one m.inn z tym, że trzeba samemu "bawić" się w tworzenie plików sterujących kompilacją - czyli "makefile". Owszem, warto cokolwiek wiedzieć na temat pliku makefile i jego składni. Ale to jest tak trochę jak z asemblerem. Warto go znać i umieć pisać w nim wstawki ewentualnie do języka C. Po co zaś pisać całe programy w asemblerze? Tak samo z makefile. Tym bardziej, że wszystkie środowiska programistyczne robią tą czarną robotę w zamian za programistę, wyręczając go z tego męczącego obowiązku. Co nie oznacza, że programista nie ma nad tym plikiem kontroli. Wręcz przeciwnie ma i to pełną. Zatem jeszcze raz - po co się męczyć - tą metodą ? Dajmy sobie spokój jeśli chcemy szybko i łatwo zacząć albo wygodnie dalej programować.

ad.2) ... AVR Studio 4.xx to bez dwóch zdań sto razy lepszy sposób niż ten z punktu pierwszego. O ile jednak sposób pierwszy mógłbym porównać do takiego pojazdu jak "taczka" to już AVR Studio 4.x jest o tyle lepsze, że można go porównać do pojazdu o nazwie "Mały Fiat 126p" (popularny maluch). Sorki za wyrażenie ale w skrócie można powiedzieć o tym edytorze, że "pierdzi, trzeszczy ale jeździ" ;) Oczywiście wymaga on instalacji pakietu WinAVR czyli samego kompilatora C. Nie porównuję tu oczywiście jego możliwości polegających na debugowaniu czy symulatorze - bo te są dobre i na przyzwoitym poziomie. Wręcz nie znajdziemy ich w takiej postaci w innych środowiskach. Nie mniej jednak trzymajmy się zasady i mówmy o edytorze dla programisty. Mamy tu już widok projektu, drzewko, możliwość ustawiania parametrów projektu i różnych opcji pliku makefile. Można także w jednym edytorze uzyskać podgląd różnych plików projektu. Niestety jak mówiłem na początku jakość nieco lepsza od taczki czyli trudno się poruszać pomiędzy plikami, bardzo słabo widoczne zakładki, brak wielu ale to bardzo wielu udogodnień dla pracy programisty o które dużo łatwiej już w kolejnych środowiskach.

ad.3) ... AVR Studio 5 - to jest niestety pomyłka genetyczna, mały potworek, który po operacji na zdrowym organizmie uciekł z tajnych laboratoriów firmy ATmel ;) Owszem, potworek jest ładny i kolorowy niczym piękny motyl i wabi swoimi trzeciorzędnymi cechami .... hmm hmm. W rankingu nazw związanych z pojazdami, oceniłbym go na "zepsuty VolksWagen Golf po wypadku z uszkodzoną ramą i zbieżnością nie do ustawienia, plus mnóstwo szpachli pod lakierem" ;) Czyli jest niby już dużo lepiej ale......

.... ale firma ATmel wzięła się swego czasu ochoczo za pakiet WinAVR czyli cały TOOLCHAIN i postanowiła go dalej już sama rozwijać, wzbogacając i przystosowując do nowych swoich mikrokontrolerów. Niestety :( pierwszy poważny cios otrzymała brać linuxowa. Bowiem najnowsza wersja AVRS5 opierająca się już na silniku od MS Visual Studio nawet nie spróbuje się uruchomić na linuxie. Więc w tym zakresie kaplica. Brać windowsiczna mogłaby się cieszyć, jednak samo uruchamianie tego potwora to koszmar, czas stracone zasoby itp. Ale ok - no niech będzie, może "coś za coś", czyli spodziewamy się jakiejś miłej niespodzianki po uruchomieniu. I owszem, pierwsze wrażenie to szok! dech zapiera. Kolorowo, graficznie, piękne kolorowanie składni, piękne menu kontekstowe, folding i sporo bardzo wygodnych opcji dla programisty - to trzeba przyznać bez bicia. (to te efekty pięknego kolorowego motyla). Ale niestety na tym koniec. Co z tego, że piękny motyl skoro jadowity ? i potrafi ukąsić tzn sprawić nam tyle problemów podczas pracy, że na szukanie błędów albo właściwych rozwiązań tracimy nerwy, zdrowie a nawet czasem sporą część włosów z głowy. Dlaczego ? .... ano dlatego, że:

a. Firma Atmel skopała brutalnie pakiet WinAVR czyli Toolchain, który zawiera błędy, i to takie błędy, na których najszybciej ucierpi nie kto inny jak początkujący. A to on zwykle w pogoni za nowym - nabiera się na AVRS5.

b. Firma Atmel zrezygnowała z oczywistych i podstawowych ustawień projektu - do jakich zdążyła przyzwyczaić wszystkich w AVRS4. W związku z tym, ustawienie czegoś tak oczywistego jak częstotliwość taktowania mikrokontrolera, jest niemożliwa w prosty sposób dla początkującego. Ba, dla większości początkujących jest w ogóle niemożliwa, bo rzadko który z nich wie jak się dokopać poprzez setki dziwnych opcji i okienek do ustawień "makefile". A to właśnie tam jeśli chodzi o AVRS5 można a nawet trzeba ustawiać taki parametr jak F_CPU. Tyle, że wpisując go w ustawienia "makefile" trzeba to zrobić znając zasady tworzenia tegoż makefile, czyli trzeba wpisać: -DF_CPU 8000000 (o ile taktowanie = 8MHz). Ale gdzie tam???? spośród początkujących jedna na 100 osób o tym gdzieś doczyta, cała reszta niestety za namową najróżniejszych kursów internetowych języka C dla AVR, jak jeden mąż wpisuje (O ZGROZO!!!! I NA SWÓJ POHYBEL) bezpośrednio w kodzie programu #define F_CPU 8000000. Niestety nawet nie zdając sobie sprawy, że robią sobie "kuku" na własne życzenie.

c. firma Atmel - schrzaniła toolchain, na tyle, że twórcy otwartego projektu OpenSourc'owego WinAVR, obudzili się ponownie ze snu i stają do walki. Oznacza to ni mniej ni więcej jak to, że za jakiś czas dostaniemy (jak dobrze pójdzie) nowy i nie zrąbany toolchain, który w przeciwieństwie do tego atmelowskiego nie będzie zawierał błędów a zostaną dodane nowe mikrokontrolery. Co będzie to się dopiero okaże. No chyba, że firma Atmel pójdzie po rozum do głowy, i wcześniej wyda może nową wersję AVR Studio 6 wraz z poprawionym toolchainem. Wtedy też, Volkswagen Golf - zostanie naprawiony albo nawet przerobiony na najnowszego Passata i będzie go można już śmiało polecać nawet na równi z Eclipse.

ad.4) ... CodeBlocks - to także darmowe środowisko, w którym można spokojnie pisać programy w języku C dla AVR. Dla testów sam pobrałem je, zainstalowałem, wypróbowałem, potem odinstalowałem i zapomniałem. Nie będę nawet go jakoś oceniał ani mówił źle czy dobrze. Dla mnie jest ono przeciętne, na pewno dużo lepsze niż AVR Studio 4 czy AVRS5. Ale wrażenia na mnie nie zrobiło no i muszę powiedzieć, że moim zdaniem jest dużo dużo gorsze niż ECLIPSE. Ale to moje i być może nieobiektywne zdanie.

ad.5) ... ECLIPSE - w pełni darmowe i w pełni PROFESJONALNE ŚRODOWISKO. Absolutnie godne polecenia dla KAŻDEGO a szczególnie dla początkującego. I zamiast się bać zaczynać z ECLIPSE, albo odkładać na później (podobnie jak to nieraz piszą ludzie na forach, że "na początku to ja się chcę nauczyć Bascoma, a później jak już będę dobry w te klocki to wezmę się za C" ;) .... dokładnie tak samo jest z tymi co to mówią, że na razie to AVR Studio a później jak się wprawią to Eclispe. Tymczasem Eclipse w terminologii pojazdów to niekwestionowany Mercedes klasy S. Osobiście poświęciłem sporo czasu i wysiłku żeby przybliżyć wszystkim to środowisko, żeby przekonać i pokazać, że można je bardzo ale to bardzo szybko polubić , wręcz pokochać i to na zabój. Jak już ktoś zacznie i popracuje w nim miesiąc albo dwa, to gdybym przyszedł i powiedział, że ZABIERAM Eclipse i musisz wrócić do AVR Studio - to niestety, taki delikwent uciąłby mi toporem albo maczetą ręce aż po pachy. Zresztą ilu ludzi pisze do mnie, po przejściu na jasną stronę mocy, że żałują iż dawno tego nie zrobili. Dopiero wtedy widzą ile stracili.

Dlatego stworzyłem na płycie DVD dołączonej do książki "Mikrokontrolery AVR Język C Podstawy programowania" kilka filmów VIDEO, w których prowadzę krok po kroku nie tylko poprzez instalację Eclipse ale także pokazuję na szybko i precyzyjnie wiele ciekawostek, z których od razu aż chce się korzystać, aż się ręce trzęsą żeby tylko , żeby już działać na Eclipse po obejrzeniu tych filmów. Szczególnie początkujący, którzy z marszu pozbywają się wielu swoich problemów z pisaniem i tworzeniem programów, kodów źródłowych. Dlatego postanowiłem pierwszy z tych filmów (z całego materiału video) zaprezentować tu na blogu. To będzie taka podstawa, wstęp i duża zachęta mam nadzieję do Eclipse.

I proszę się nie martwić, nie piszę tego po to żeby na siłę proponować książkę, wprawdzie na filmie mowa jest o już gotowym i preinstalowanym ECLIPSE wraz z już zainstalowanym PlugInem dla AVR, ale to będzie tylko korzyść z posiadania książki. Bez niej także sobie poradzisz. Musisz tylko wiedzieć jaką wersję Eclipse pobrać, bo jest tyle wersji Eclipse do pobrania na stronie projektu, że głowa boli i zwykle już to odstrasza. Dlatego podpowiadam kilka podstawowych kroków jak z tym sobie poradzić nie posiadając nawet książki:

1. pobrać Eclipse CLASSIC a następnie jedną z wersji: Ganymade, Galileo albo Indigo
2. wejść na stronę projektu PlugIna AVR dla Eclipse i zobaczyć instrukcję jego instalacji
3. wgrać wszystko na dysk - tak jakby to było wg punktu z instrukcji z książki i gotowe.

Poniżej film - zapraszam do obejrzenia i pozbycia się lęków przed Eclipse ;)


Polecam też gorąco do zajrzenia do kącika PORAD dla ECLIPSE na moim blogu , np do tego tematu:


Przy okazji najnowszy mój poradnik z rzetelnym porównaniem dwóch środowisk:


;)

107 komentarzy:

  1. Tak zaiste eclipse jest naprawdę dobrym środowiskiem , ja na dodatek dołożę swoje 3 grosze i trochę jadu :). Nie nie żartowałem . Eclipse jest pomyślane jako multiplatformowe środowisko projektowo-programistyczne typu RAD. Jeśli zaczniecie teraz na początku korzystać z dobrodziejstwa tego małego potworka szybko ba nawet bardzo szybko staniecie w bardzo komfortowej sytuacji. Dlaczego ?? To bardzo proste , większość doskonałych kompilatorów na inne mikrokontrolery jak np ARM , czy 16 bitowe MSP430 maja swoje środowiska pracy np:
    STM32 - Atolic TrueStudio , CrossStudio
    MSP430 - CodeComposer Studio (CCS5)
    8051 - Keil uVision

    i wiele innych jak IAR , czy inne nie wymienione
    maja jedną cechę wspólna

    Środowiska te są oparte o ECLIPSE dzięki czemu
    Gdy "podrośniecie" w mikrokontrolerach szybko na obcej ziemi poczujecie się pewnie i będzie się wam dobrze pracować , bo wszystko będzie swojskie i proste , zmieni się tylko środowisko sprzętowe i nazwy specyficznych rejestrów .
    Dlatego naprawdę warto zacząć od czegoś co zostało stworzone do wielu zadań i nie jest związane na sztywno z czymś , a łatwo można dostosować do własnych potrzeb. Możliwe że jak zajdzie taka potrzeba to podpowiemy wraz z Mirkiem jak spolszczyć, jak zbrandować ekran powitalny i wiele innych funkcji tego świetnego środowiska. Ja używam go prawie cały czas czy to piszę coś na STM32 w Atolicu czy na Launchpada w CCS5 czy nawet na PICA i zawsze czuje się komfortowo , bo wiem że mogę każdą opcje dostosować do swoich potrzeb.

    A teraz trochę obiecanego JADU ....

    Poza garbusem nie widziałem w VW ramy :)

    OdpowiedzUsuń
  2. hyhyhy i tu wychodzi na wierzch moja wiedza na temat aut ;) eeeeh kolega to zaraz wszystko na wierzch wyciągnie ;) ;)

    a tak nawiasem mówiąc to kolega SunRiver zwrócił uwagę na BARDZO WAŻNĄ RZECZ !!! o której zapomniałem jakby napisać - właśnie - że z Eclipse to tak jak z językiem C. Uczymy się go np na początku dla AVR'ków a potem wykorzystujemy z powodzeniem tę wiedzę dla wyższych mikrokontrolerów jak ARM, STM, PIC itp

    Tak samo z Eclipse - warto od razu z nim zacząć, bo później tak czy siak - będzie trzeba się z nim zmierzyć. A po co wtedy zaczynać od nowa i tracić czas ? - jak można od razu połączyć przyjemne z pożytecznym ;)

    OdpowiedzUsuń
  3. Przy okazji, fajnie znać takiego gościa jak SunRiver - ten to ma kawał dobrej wiedzy w głowie - i to jak widać w różnych dziedzinach ;)

    OdpowiedzUsuń
  4. To są plotki i pomówienia ;)

    Ale wiele rzeczy się w życiu już robiło od napraw samochodów poprzez strojenie aut do rajdów , różne naprawy czasem dziwnego sprzętu elektronicznego i tu i ówdzie trochę myślę że zbędnego bagażu doświadczeń nazbierałem , ale czasem przydatnego. Tak panowie szeroko trzeba mieć otwarte oczy i patrzeć z optymizmem na wiele spraw , bo zaiste nie ma rzeczy niemożliwych , a tylko wszystko jest kwestia czasu poświęconego na zgłębienie wiedzy i opracowanie rozwiązania, elektronika jest jedna z tych dziedzin gdzie poza trzeźwym myśleniem , posiadaniem ścisłego umysłu i a nawet przede wszystkim dużą ilością cierpliwości można coś osiągnąć tu niestety niema mowy by się czegoś nauczyć do końca - zawsze będziemy niedouczeni i zawsze w tyle z technologią :)

    OdpowiedzUsuń
  5. Witam Panowie ale nie do końca macoszo traktujecie code::blocks-a a przecież tam wszystko jest fajne proste i bezproblemowe, nie jest taki wielki jak eclipse ale na inne rodziny też da się pisać, pomimo prostoty edytor jest bardzo "mądry" osobiście polecam do konsolowych aplikacji na PC jak i do avr-ów niewątpliwym minusem jest brak przycisku integrującego z programatorem co po wyklikaniu w eclipsie jest błogosławieństwem jak się testuje program ;)

    OdpowiedzUsuń
  6. Ja zająłem, dosyć umiarkowany stosunek do CodeBlocks. Wcale nie pisałem, że jest jakiś zły. Poza tym zdecydowanie również go polecam zamiast AVRStudio4. Nie mniej jednak tych wad w stosunku do Eclipsa ma troszkę więcej niż tylko brak tego przycisku.

    OdpowiedzUsuń
  7. Ja się tu przyznam ze swego czasu używałem pakietu Altium Designer , ale to nie ta liga i nie te zabawki był za ciężki i za dziwny.. Protela owszem lubię zresztą pracuje z nim w pracy. Codeblocks nie przypadł mi do gustu w sumie wolałem NTP++ i o dziwo nawet archaiczny edytor Vi. Eclipse natomiast jakoś tak się przyjęło od czasu pisania w javie jeszcze gdy było własnością IBM wtedy to było IBM Rational. Przydaje się nawet do pythona.

    OdpowiedzUsuń
  8. No to się zaraziłem tym Eclipse :=). Zaraziłem się i mam problemy. Zanim trafiłem na firmę Atnel, znalazłem zestaw EvB i mam z Eclipse problemy. Korzystam z ATBManager i podmieniam Avrdude, wszystko jest niby ok, ale mogę zaprogramować procesor tylko jeden raz. Po tym trzeba od nowa wgrać bootloader i znowu można jeden raz zaprogramować procesor. Znasz może ten problem? I kończąc - czy ew. można się odezwać na priv. z tym problemem? Czy ATBManager wspomaga wyłącznie zestawy firmy Atnel?
    Serdecznie pozdrawiam i życzę dalszych sukcesów :=)
    Mariusz

    OdpowiedzUsuń
  9. Tak tak - na dzień dzisiejszy "ATB Manager" ale również "MkAvrCalculator" wspierają programatory FT232 tylko na potrzeby zestawów uruchomieniowych ATB.

    A to resetowanie o którym piszesz to właśnie jest związane z tym udogodnieniem jakie oferuje ATB Manager - pozwalając z poziomu komputera (jak widać na filmiku) zresetować tylko sam układ FT232, dzięki czemu nie trzeba wyłączać i włączać wtyczki USB.

    OdpowiedzUsuń
  10. Ok, :=), to teraz nie jako klient firmy (bo nim nie jestem), zapytam, co radzisz w zaistniałej sytuacji zrobić ? Mam co mam, "ATB Manager" robi co robi. Jest jakaś nadzieja na korzystanie z Eclipse z innymi zestawami?
    Ponownie pozdrawiam serdecznie
    Mariusz

    OdpowiedzUsuń
  11. Na dzień dzisiejszy nie umiem odpowiedzieć na to pytanie precyzyjnie. Za to podpowiem, że nie we wszystkich zestawach możliwa jest taka funkcjonalność z uwagi na to, że wielu producentów wykorzystuje moc tych małych scalaczków FT232 w 10-20% :( .... pozostawiając nigdzie nie podłączone ich nogi.

    Na razie także trwają prace nad oprogramowaniem, tzn różnymi programami firmy ATNEL, które są wciąż rozwijane. Nie mniej jednak nie następuje to zbyt gwałtownie z uwagi na szereg innych większych priorytetów.

    Tak więc pozostaje tylko czekać - może za jakiś czas się coś wyjaśni.

    OdpowiedzUsuń
  12. Dla mnie do nieczego. Nie ma wsparcia dla JTAGICE MK II :)

    OdpowiedzUsuń
  13. Ja się nie dziwię, że dla ciebie do niczego. Aż szkoda tego programatora w twoich rękach panie kolego bo zapewne używasz jego możliwości w 2-3% sądząc po takim wpisie. Widać, że w ogóle nie czytasz tego co się pisze a tym samym dokumentacji. A tymczasem w AVRDUDE na którym oparte jest programowanie w Eclipse ja WÓŁ , BYK - masz napisane na liście programatorów, że ten JTAGICE MK II jest obsługiwany. Polecam więc uważniej czytać na przyszłość wszystko co wpada ci w ręce a nie pochopnie wyciągać jakieś wnioski z kosmosu.

    OdpowiedzUsuń
  14. Po pierwsze Panie kolego to nie programator tylko ICE, więc daj Pan spokój :) Debuguję i używam w 90%. A wpis jak wpis. Każdy ma prawo nawet piardnąć ;)

    OdpowiedzUsuń
  15. Zawsze na takie podejście mam jedno dobrze przysłowie, które tutaj szczególnie pasuje: "Złej baletnicy to przeszkadza i rąbek spódnicy"

    A na przyszłość to proszę robić sobie wpisy, typu piardnięcia na innych blogach czy forach. Tak się składa, że to mój blog i mogę zrobić to co uważam za stosowne. Zatem dalsze tego typu zaczepki po prostu usunę, więc kolega sobie nie popierdzi tutaj za bardzo.

    OdpowiedzUsuń
  16. OK. Przepraszam :) Ostatnio wytrwale testuję AS5. Nie jest takie złe. Trochę zabugowane ale daje się fajnie pracować. Eclipse to też nie aż taki zły pomysł. Może i nawet Netbeans (kiedyś miałem dobrze skonfigurowane pod avr-gcc). Wolę jednak dedykowane narzędzia, które chiał czy nie chiał dają mi 100% natywnego wsparcia.

    OdpowiedzUsuń
  17. No teraz to ja rozumiem i odniosę się do takiej wypowiedzi chętnie. Nie chciałbym być źle zrozumiany. Ja nie twierdzę, że w ogóle produkty firmy ATmel jeśli chodzi o środowisko są do kitu. Powiem szczerze, że sam z wypiekami na twarzy czekałem na nowszą wersję od 4.xx. I pierwsze odpalenie AVRS5 bardzo miło mnie zaskoczyło nowymi możliwościami, toż to edytor rodem z MS Visual Studio, więc jak może być źle pod tym względem. Sam oczekiwałem właśnie czegoś takiego i chętnie bym korzystał zapewne gdyby właśnie nie wady u jakich pisałem w tym artykule. Jest ich sporo, i sporo doświadczonych osób da sobie z tym radę. Jednak ja pomimo, że też już jakby nie patrzeć "troszkę" programuję, przyzwyczaiłem się do większej wygody. Poza tym, pomimo, że sam nie korzystam z linuxa to szkoda mi ludzi, którym Atmel podciął gałąź. Dodatkowo zamiast porządnie rozwinąć darmowe AVR GCC to je skopał w pewnym zakresie. Więc o czym my tu mówimy? Fakt, niektórych nowych procków nie da rady pod Eclipsem już zrobić z AVR GCC. Ale na szczęście stwórcy AVR GCC znowu ponoć biorą się do roboty i bardzo dobrze. Więc sam czekam znowu albo na AVRS6 ale porządnie poprawione pod tym względem albo na nowszą wersję WinAVR (AVR GCC) i też sobie dam radę. Ale to, że ja sobie dam radę albo ty panie kolego to pikuś. Mnie głównie chodzi o początkujących, którzy ostatnio masowo nacinają się na AVRS5 i boją się Eclipsa.

    Wystarczy popatrzeć nawet na elektrodzie, na wszystkie nowe przykłady kodów, gdzie zawsze jak tylko widzę w kodzie programu:

    #define F_CPU xxxxxxxxxx

    to już na dzień dzisiejszy wiem, że człowiek jest początkujący i niestety okaleczony przez AVRS5. Bo w dawniejszym AVRS4 już dawno udało się nauczyć początkujących, żeby tak nie definiować F_CPU tylko ustawiać to w propertiesach projektu i że mają to wtedy automatycznie to widoczne w całym projekcie.

    I takie podejście jest moim celem - pomoc początkującym a nie zaawansowanym.

    OdpowiedzUsuń
  18. Dokładnie. Zgadzam się. Zaawansowani, czyli tacy jak my ;) zawsze dadzą sobię radę :) Pomoc dla początkujących jest potrzebna, zwłaszcza, że spora część ludzi nie potrafi posługiwać się językiem angielskim. A to wielki błąd ponieważ dokumentacji czy też datasheetów nie będzie nikt tłumaczył na język polski. Btw. Fajna ta twoja książka o C i AVR ;)

    OdpowiedzUsuń
  19. Nawiązując do:
    #define F_CPU xxxxxxxxxx
    to nie takie głupie umieszczać to w kodzie.
    Przeglądanie plików tekstowych kodów źródłowych daje wiele informacji. Pliki pomocnicze avrstudio czy też properties projektu są mało czytelne z punktu widzenia notatnika czy nawet chęci tam zaglądnięcia :)

    OdpowiedzUsuń
  20. Nawiązując do powyższej wypowiedzi, to niestety totalna nieodpowiedzialność umieszczanie

    #define F_CPU xxxxxxxxx

    w kodzie. Niestety nie ma tu nic do rzeczy to, że pliki avrstudio czy projektu są mało czytelne. Panie kolego, to nie chodzi o umieszczanie definicji F_CPU w jakichś tam plikach pomocniczych. Więc chyba ktoś tutaj dalej nie do końca rozumie o co chodzi i z czym się wiąże ten błąd umieszczania F_CPU bezpośrednio w kodzie. Proszę więc nie głosić tez, że "to niby niegłupi pomysł" bo jest wręcz w 100% odwrotnie. I żeby nie być gołosłownym, to jeszcze raz pozwolę sobie przypomnieć dlaczego, chociaż i tak na wszystkich forach przypominam to z uporem maniaka. A i tak wychodzi z tego trochę taka walka z wiatrakami, bo za chwilę ktoś nowy wchodzi o głosi teorię, że to "niegłupi pomysł"

    Otóż fakt, że podajemy wartość taktowania mikrokontrolera w propertiesach (właściwościach) projektu czy to w AVRS czy w Eclipse nie jest po to żeby było ŁADNIE!!!! albo żeby to sobie zostało umieszczone w jakichś tam plikach pomocniczych.

    Panie kochany, wartość ta umieszczana jest w pliku sterującym kompilacją, który nazywa się

    makefile

    a jest w nim umieszczana w takiej postaci:

    -DF_CPU xxxxxxxxxxxxx

    dzięki temu, że jest w makefile, wartość F_CPU jest dostępna UWAGA!!!!

    WE WSZYSTKICH - W KAŻDYM PLIKU PROJEKTU !!!!!

    i to nie tylko w naszych plikach projektu ale także w tych systemowych, np: delay.h itp

    które jej oczekują do poprawnej pracy i przeliczania swoich parametrów. Dlatego jeśli ktoś (sorki za określenie) ale tak beztrosko mówi, że to "niegłupi pomysł" to potem dziwi się, dlaczego po zdefiniowaniu F_CPU we własnym pliku main, nie działają poprawnie opóźnienia _delay_ms() czy _delay_us() znajdujące się tu i ówdzie w różnych plikach naszego projektu !!!!

    Ale to nie koniec kłopotów. Załóżmy, że potrzebuję stałej F_CPU w kilku różnych swoich plikach projektu - to co ???? Wystarczy takie jednokrotne zdefiniowanie tej stałej w pliku main.c ??????? No zastanów się Pan.

    Nie! trzeba to sobie zacząć definiować w każdym pliku gdzie jest ona potrzebna. Zatem ci beztroscy ludzie, zaczynają w każdym pliku nawet tak na wszelki wypadek dodawać

    #define F_CPU xxxxxxxx

    robiąc sobie mega KUKU !!!!

    Bo co teraz? gdy zachce się nam jednak po miesiącu czy dwóch zmienić taktowanie procka? hmmm???? cóż trzeba żmudnie rzeźbić i w każdym pliku zmieniać wartość F_CPU !!!! - sorki ale to już jest MEGA BZDURA i mam nadzieję, że każdy zrozumie, że to "CHORY POMYSŁ" !

    A wystarczyło TYLKO RAZ podać częstotliwość taktowania we właściwościach projektu, kompilator dodał to automatycznie do makefile w takich środowiskach jak AVR Studio 4 czy Eclipse, i po kłopocie. Wtedy jeśli chcę zmienić taktowanie po kilku miesiącach czy nawet częściej do prób, to zmieniam tę wartość TYLKO W JEDNYM MIEJSCU !!!!!

    więc co jest lepsze ?????

    Za to niedoświadczeni użytkownicy Programmers Notepad czy (o zgrozo !!!!) AVR Studio 5 !!!!!) charakteryzują się tym, że dodają to nieszczęsne F_CPU do pliku main.c !!!!

    dlaczego? ... ciąg dalszy w kolejnej odpowiedzi

    OdpowiedzUsuń
  21. cd....


    Ano dlatego, że jeśli chodzi o Programmers Notepad to nawet nie ma takiej opcji jak "Właściwości projektu gdzie można wpisać" i trzeba najpierw wiedzieć, że należy to SAMEMU I RĘCZNIE wprowadzić do makefile, bo i tak trzeba cały makefile ręcznie robić. Tylko hmmm zanim się ktoś tego nauczy to najpierw zjada własne zęby i traci wciąż zdrowie przez taki głupi błąd dodawania F_CPU do kodu programu.

    Za to w AVR Studio 5 - podobnie !!! nie ma także opcji "Właściwości projektu" tak jak to było w starszym AVRS4 !!!! ... ale przynajmniej za to można się DOKOPAĆ - tylko też trzeba wiedzieć gdzie - do opcji kompilacji C, i tam są miejsca gdzie można dodać własne definicje do automatycznie generowanego makefile. Niestety tu trzeba również wiedzieć, gdzie to jest i jak się dokopać oraz to, że trzeba to wprowadzić koniecznie w takiej postaci:

    -D_FCPU xxxxxxxxxxx

    dlatego proszę przestać podpowiadać panowie o tym, że taka metoda jaką kiedyś ktoś wymyślił z twórców języka C jest do kitu - i lepiej stosować jakieś własne nowe wynalazki. Trzeba po prostu lepiej poznać język C - bo to również jest jego właściwość - wiedza, gdzie i jak definiować taktowanie dla procesora w danym środowisku!!! (mowa tutaj przynajmniej o języku C dla mikrokontrolerów AVR)

    OdpowiedzUsuń
  22. Dzięki, Mirku, za podpowiedź. Zainstalowałem sobie Eclipse na kompie, który może nie jest rakietą, ale jednak te 512 MB RAM i jakieś 5000 MIPS pod maską ma. I albo coś popsułem, albo Eclipse wymaga jeszcze mocniejszego kompa. Bo uruchamia się to kilka minut a każda operacja wymaga cierpliwości.
    Dawniej, jeszcze na studiach, miałem wcześniejsze Eclipse na podobnej maszynie i jakoś działało w miarę, tylko że jedna-dwie wtyczki max, bo potem następowało mało efektowne zejście całego eklipsa przez zaduszenie albo niemożność uruchomienia, pod windą też.

    Jeśli chodzi o takie "kombajny" programowe, to mam jedną podpowiedź - każdy instaluję na osobnej wirtualnej maszynie. Jakby miało coś w systemie nabruździć, to nie ma szans. A jak potrzeba, to kopiuję "kompa" np. z CAD'em na pena i przenoszę gdziekolwiek.

    Dzięki za zwrócenie uwagi na problem różnych opcji, bo pewnie nie tylko FCPU by się przydało w makefile mieć.

    OdpowiedzUsuń
  23. ten pana filmik jest tak "profesjonalny" jak pana "profesjonalna" książka.
    Ile pan zapłacił za skonfigurowanie eclipsa?

    OdpowiedzUsuń
  24. do "krzysztof86" ---> bardzo proszę o sprecyzowanie pytania, bo przykro mi ale w ogóle go nie rozumiem. O jakiej zapłacie kolega pisze ? nie wiem o co chodzi. Przykro mi.

    OdpowiedzUsuń
  25. A ja mam pytanie innej natury. Załóżmy, że potrzebuje mieć/znać wartość częstotliwości z jaką pracuje mikrokontroler (czyli wartość ustawioną w Properties projektu). Jak się dobrać do tej wartości? Jest jakaś zmienna, która "pobiera" wartość częstotliwości z Makefile/projektu?

    OdpowiedzUsuń
  26. do "Anonimowy" --> ależ jak najbardziej, przecież taki cel właśnie przyświecał twórcom C ;) .... dzięki temu że w makefile Eclips wstawi opcję:

    -DF_CPU xxxxxxxx

    to w całym swoim projekcie, w każdym pliku z osobna masz do dyspozycji właśnie stałą o nazwie F_CPU , która odpowiada wartości ustawionej w propertiesach projektu.

    Ale tak nie jest tylko w Eclipse. Każde inne środowisko tak wspomaga programistę - poza na razie najnowszym wynalazkiem w postaci AVRS5. Czyli tak było już np. w starszej wersji w AVRS 4.xx

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja tylko chciałbym dodać, ze jak ktoś używa w projekcie wstawek assemblerowych to warto skonfigurować także podlinkowanie F_CPU dla Assemblera. Jest to w Eclipse tutaj:

      ProjectProperties-->C/C++ Build-->Settings-->AVR Assembler-->General

      W polu Other GCC Flags należy wstawić:
      -DF_CPU=${AVRTARGETFCPU}

      Usuń
    2. Bardzo cenna podpowiedź

      Usuń
  27. Nie rozumiem całej tej nagonki o F_CPU w AVRS5, przecież bez problemu można ustawić tą stałą jako symbol we właściwościach kompilatora - wtedy jest jawnie podawana podczas kompilacji.

    OdpowiedzUsuń
  28. jakiej nagonki? kolega musi czytać uważniej to co zostało napisane a nie na wyrywki albo tylko to co chce przeczytać.

    A kto jak nie ja pisał wyżej że można to ustawić we właściwościach kompilatora - tylko, że takich jak ty jest niewielu, a każdy początkujący wpisuje #define F_CPU xxxxxx w kodzie programu.....

    A jak nie wiesz jak to było w AVRS 4 albo jak jest w Eclipse czy innych dobrych środowiskach to sobie sprawdź i potem pisz takie rzeczy.

    Tym bardziej, że mowa jest jeszcze o wielu innych błędach - ale znowu - o tym może też nie słyszałeś nawet. A jak słyszałeś i podmieniłeś sobie toolchain to zaraz napiszesz, że przecież to jest proste. Jak proste to sobie to zrób - albo załóż blog i pomóż w uświadamianiu początkujących zamiast zgrywać bohatera dla którego wszystko jest proste.

    OdpowiedzUsuń
  29. A ja polecam jako edytor - GEANY : http://www.geany.org/
    Bardzo szybka maszynka i ładnie daje się konfigurować....

    OdpowiedzUsuń
  30. a co z attiny10 i podobnymi? Winavr i tym samym eclipse nie radzą sobie z tymi prockami...

    OdpowiedzUsuń
    Odpowiedzi
    1. Odpowiedź jest prosta - nie ma wyjścia trzeba skorzystać z AVR Studio. Co gorsze, prawdopodobne jest że WinAVR nie będzie się już rozwijał zatem niedługo może się okazać, że wszystkie nowe procki będzie można programować też tylko w AVR Studio. Jednak na dzień dzisiejszy mogę śmiało powiedzieć jedno. Ten kto bierze się za pisanie programu na ATtiny10 nie będzie miał problemów żeby poradzić sobie z babolami w nadal kocim AVR Studio (a przecież jest już dostępna wersja beta 6 AVRS).....

      tymczasem wiele spośród typowych procków jak: ATmega8/48/88/168/328 czy też ATmega16/32/64/128/644 i podobne - jeszcze długo będą nieśmiertelne ;) i jeszcze długo spokojnie będzie można korzystać z porządnego środowiska jakim jest Eclipse.

      Przyznam szczerze, że liczyłem że ATMEL wypuszczając AVR Studio 6, poprawi babole z poprzedniej wersji. Tymczasem Atmel jedyne co zrobił to dodał obsługę procków ARM plus kilka kosmetycznych drobiazgów, pozostawiając to co było najgorsze w AVRS5. No cóż, można liczyć że w kolejnej wersji coś się zmieni na lepsze.

      Usuń
    2. Eclipse jest ok bardzo lubię w nim pisać, pisałem również oprogramowanie dla mikroprocków atmela, ALE niestety prawda jest przykra i jednoznaczna, programista używa czegoś takiego jak debugger, no chyba, że jakiś domorosły gniotopisarz pseudo programów komputerowych. Mając do dyspozycji (bo tylko te mam do dyspozycji) JTAG ICE MKII, MKIII oraz ONE, niestety ale w Eclipsie po prostu no po prostu są one bez użyteczne, każdy kto korzystał z nich w Eclipsie wie o co chodzi.

      Nie będę się dalej rozpisywał bo z autorem zgadzam się w wielu kwestiach, ale wytłumaczenia są moim skromnym zdaniem troszkę nonsensowne. Fakt jest jeden Panie blogo pisarzu, NIE SĄDZĘ , ABY JAKA KOLWIEK FIRMA ZDECYDOWAŁA SIĘ NA UŻYWANIE ECLIPSE DO CELÓW KOMERCYJNYCH.

      Mógłbym napisać dużo więcej , że Eclipse jest lepsze tu i tu i tu i tu i jeszcze tu, ale póki nie było AS5 to niestety, ale miałem połączony projekt w Eclipse i w AS4 bo tylko w AS4 dało się debugować oprogramowanie i co z tego, że w Eclipsie był "FAJNIEJ" :P.

      Usuń
    3. Panie Blogo-krytyku - tak pozwolę sobie się odezwać na te wszystkie nonsensy nie wspominając o gniotopisarzach pseudo programów komputerowych. No toś się pan popisał że aż strach, elokwencja aż tryska. Nie wspominając już o takiej super autopromocji, z które wynika jasno żeś pan "fachowiec" co się zowie - szok. Zawsze się zastanawiam skąd się biorą tacy ludzie, co to lubią wpaść na anonima i się przechwalać jak piaskownicy.

      ale teraz odpowiem na merytoryczne zarzuty jeśli można tak je nazwać w ogóle.

      Po pierwsze wyobraź sobie pan, i tobie to mogę powiedzieć z całą odpowiedzialnością, że ja jeszcze ANI RAZU nie użyłem debugera przy programowaniu AVR'ów. I nie dlatego, żebym uważał to za jakieś ZŁO, że to jest niedobre, żebym tego nie polecał itp....

      Dla mnie jest jeden prosty powód, debugera to ja używam na co dzień przy programowaniu projektów które piszę na PC'ty szczególnie przy aplikacjach wielowątkowych....

      Przy pisaniu softu na tak małe 8-bitowce jak dotąd po prostu mnie osobiście debuger jest do szczęścia niepotrzebny. I nie krytykuję tu ludzi broń Boże, którzy korzystają z debugera czy symulatora na AVR'kach ale ciebie TAK - boś ty przecież "fachowiec". Skoro tak ? to powiedz mi dlaczego jesteś zmuszony sięgać po debuger w tak prostych aplikacjach jak na 8-bitowce ???? A może jednak jest jakaś pierwsza skaza na tym określeniu "fachowiec" w stosunku do twojej osoby???? Druga to na pewno taka, że żaden fachowiec nie przechwala się w tak obrzydliwy sposób jak ty to robisz. Lepiej by było żebyś się chłopie po pierwsze:

      - zapoznał jak można korzystać z debugera i symulatora pod ECLIPSEM - bo to że wiesz mało na ten temat to już twój problem panie (teraz już jak dla mnie) "pseudo-fachowiec". Żeby cię odrobinę uświadomić to proszę, poczytaj - może ci się przyda:

      http://forum.atnel.pl/topic956.html

      http://forum.atnel.pl/topic958.html

      dla mnie mianem człowieka fachowca to można określić kolegę z tego forum o nicku "SunRiver", który nie beczy tak jak ty tutaj nad rozlanym mlekiem, tylko pomaga innym początkującym w tym zakresie.

      Polecam ci poczytać na forum, jego całkiem bezinteresowne porady i zobaczyć jak osoba z dużym doświadczeniem może pomagać początkującym.

      Zamiast przeszkadzać tak jak ty to robisz, włażąc z butami i swoimi pseudo złotymi myślami na ten blog. Załóż swój własny i głoś wszem i wobec swoje prawdy objawione człowieku.

      Nonsensowne to jest to co tu naklepałeś, i to fiu fiuu z jakim rozmachem. Nie potrafisz zrozumieć przede wszystkim podstawowej rzeczy!

      cdn...

      Usuń
    4. cd...


      Ja staram się pomagać początkującym, a nie zaawansowanym programistom, którzy sobie świetnie poradzą z każdym środowiskiem programistycznym w tym AS5/6 i wieloma innymi. Co ty więc tu panie "pseudo-fachowiec" porabiasz na tym blogu? coś cię boli ? Nie masz się gdzie wyżyć ?

      BZDURY opowiadasz - bo ja uczę podejścia jak sobie początkujący może i powinien radzić bez debugera. Na początku warto wiedzieć, że jedna dioda LED która jest pod ręką i jakiś wolny pin procka może być DEBUGEREM. Podobnie łącze RS232 i terminal, czy wyświetlacz LCD....

      Co ja ci poradzę, że ty bez debugera wykładasz się do góry nogami i nie potrafisz sobie poradzić z prostymi projektami ?

      Każdy początkujący, kto pozna podstawowe i dobre techniki programowania, myślenia strukturalnego, jak sobie dzielić projekt na odpowiednie kawałki, które trzeba odpowiednio realizować. Każdy kto najpierw nauczy się analizy problemu od podszewki bez takich narzędzi jak DEBUGER - to później rzeczywiście doceni prawdziwe zalety takich narzędzi. Bo są niewątpliwe.

      Co więcej - jeśli się zdecyduje w pewnym momencie przesiąść na AS5/6 bo uzna to za stosowne, albo będzie korzystał z takich procków AVR, które już np nie są wspierane przez WinAVR - to bardzo dobrze. Ale ja będę spokojny, że później to on sobie sam z tym poradzi ....

      A ty panie anonimowy - przeszkadzasz mi w tym

      i jeśli zaczniesz tu dalszą pyskówkę to wywalę te twoje obecne jak i przyszłe wypociny. Pisz je sobie gdzie indziej - a jak przychodzisz do kogoś to zachowaj odrobinę kultury...

      Ja tym bardziej sobie pozwalam odpowiedzieć na takie durne zaczepki, że jesteś anonimowym cwaniaczkiem.

      na szczęście pojawiają się też inni ludzie, którzy podobnie myślą i robią jak ja. Potrafią nawet założyć własne strony i zamiast przechwalać się jak ty swoją "wiedzą" starają się również pomóc innym i podzielić się tym co zdobyli, proszę oto przykład kolejny dla ciebie osoby godnej naśladowania - zajrzyj sobie tutaj, myślę że warto:

      http://www.stsystem.elektroda.eu/

      Usuń
  31. A co robię tutaj , tak naprawdę przez czysty przypadek nie wiem skąd mi to wygoogliło w czasie szukania informacji o możliwości(dodatkowych info) na temat pisania pluginów do AS5.

    Ja powiem tak "pseudo fachowiec", jestem raczej osobą skromną więc do tego się nie odniosę, napisałem tylko prawdę i niestety było to brzydko napisane rzeczywiście mogłem troszkę się opanować lecz mnie poniosło. Przepraszam za słowa, ale uważam, że czasami warto sobie zdać sprawę z tego jak się ktoś czym zajmuje, profesjonalnie lub hobbystycznie i uważam, że powinieneś zwrócić uwagę na pewne aspekty późniejszych problemów jak ktoś by chciał się tym zająć "troszkę bardziej".

    Jeśli chodzi o prostotę tak naprawdę to niestety, ale środowisko Eclipse jest bardzo plastyczne i ma bardzo dużo "zakamarków", tak jakbym miał przyrównać do Shielda VS to niestety, ale VS jest łatwiejsze(nie mówię, że mniej plastyczne) NEW PROJECT , ATMEGA32 , OK i programujemy co jest w tym trudniejszego od Eclipse. Moim osobistym zdaniem z oprogramowania Microsoftu to VS jest najlepszym ich programem.

    Teraz na koniec to nie była "zaczepka", ale chciałem w dość może za bardzo drastyczny sposób zwrócić uwagę na problem, którego nienawidzę. A o co chodzi Linux czy Windows, Visual Studio czy Eclipse, nawet nie chce mi się wypisywać tego dalej. Prawda jest taka daj człowiekowi wybór opisz to samo, czyli nie wiem stworzenie projektu skompilowanie go i wgranie do pamięci procka, w AS i w Eclipse.

    OdpowiedzUsuń
    Odpowiedzi
    1. Teraz mogę normalnie odpowiedzieć, i sorki ale mnie też czasem ponosi - szczególnie jak ktoś tak pisze. Ale ok też przepraszam za ostre słowa. Nie mniej jednak dzięki nim udało się jednak sprowadzić dyskusję na bardziej zdrowe tory.

      Nie opiszę jak zrobić projekt w AS5/6. Jeśli masz na to ochotę to proszę cię bardzo zrób to sam. Ale weź odpowiedzialność za swoje słowa i poprowadź ludzi troszkę dłuższą drogą niż tylko taką jedną poradą. Ja sobie wymyśliłem swój sposób jak pomóc początkującym i sukcesywnie wdrażam go w życie w wielu różnych aspektach. Wybieram te narzędzia, które sprawiają najmniej kłopotu. Opisałem wyżej o jakie kłopoty chodzi.

      A wybór? każdy ma własny wybór i nie każdy musi słuchać moich rad. Za to te osoby, które podążą akurat tą drogą mogą liczyć na to, że ja będę w stanie pomóc im szybciej w kolejnych krokach poznawania C. W końcu każdy i tak sam sobie oceni. Tak jak ty to robisz i jeśli będzie bardzie odpowiadać AS5/6 to sobie to wybierze.

      Z niczym nie przesadzam. A ty spróbuj sobie zadać jedno proste pytanie....

      "skąd ostatnio w 90% kodów źródłowych na forach bierze się to definiowanie F_CPU xxxxx w kodzie, a po chwili problemy z _delay_ms() i _delay_us(). Nie wspomnę o innych problemach a mógłbym je tu mnożyć. Przykłady masz na naszym forum: www.forum.atnel.pl"

      Na koniec dodam, że ja nie mam klapek na oczach i nie twierdzę że tylko ECLIPSE jest na świecie do takich celów. Nawet czekam na kolejne wersje AS licząc że ATMEL poprawi to co zbabolił po drodze w AS w porównaniu do starszej wersji. Jeśli nie wiesz o czym mowa to tym bardziej nie powinieneś pisać takich tekstów. Bo jak mówię - ja robię coś więcej niż tylko wylewam swoje żale na AS5/6 aby zniknąć i nie udzielić pomocy. Eclipse ma też swoje wady i jedną z nich na pewno jest to , że dużo trudniej odpalić wspomniany debuger czy symulator. Ale moim zdaniem, AS5/6 ma więcej wad na dzień dzisiejszy dla pewnej podstawowej grupy procków AVR i już.

      Nawet jeśli to tylko moje zdanie i tylko moje ulubione środowisko, to pozwól że ja będę pomagał ludziom na swój sposób i swoją drogą a także za pomocą nrzędzi, które ja wybiorę.....

      A jeśli chodzi o tą plastyczność czyli tworzenie projektu - to wybacz - ale dla mnie jest dużo gorzej tworzyć projekt pod AS. Nie wspomnę że nie mam czegoś takiego jak dostęp z jednego panelu do wielu projektów naraz jak w Eclipse. I nie mów mi że to jest tylko mało istotny gadżet. Bo ktoś, kto zajmuje się programowaniem od kilkudziesięciu lat ten to doceni.

      Usuń
    2. ooo widzę, że się spóźniłem :P, spoko jeszcze raz życzę sukcesów w dalszej pracy mam nadzieję naprawdę mam nadzieję , że pomożesz zrozumieć ludziom pewne rzeczy, ale z tym DEBUGGER'EM to mnie chłopie wkurzyłeś naprawdę wkurzyłeś :P.

      Usuń
  32. Na koniec tylko napiszę, że jeśli uraziłem Cię swoją wypowiedzią to jak masz taką chęć, to ją usuń naprawdę nie miałem tu zamiaru podważać Twoich dobrych chęci czy Twojego sposobu wytłumaczenia pewnego problemu.

    Zauważ tylko, że ja nie osądziłem, ani AS5 , ani Eclipse. Nie czuje się na siłach do takich wypowiedzi. Tak naprawdę uwielbiam obydwa środowiska, oczywiście jeśli chodzi o DARMOWE MOŻLIWOŚCI.

    Naprawdę muszę zakończyć tym bo to jest coś naprawdę ważnego, ale się nie obrażaj, uważam, że jest to bardzo ważne.
    Ja "Pseudo fachowiec" , bo tak próbujesz tutaj ludziom mnie przedstawić , że co ze mnie za "fachowiec" skoro używam debugger'a do pisania programów na malutkie nawet ATmegi jakieś tam 8 bitowce. Wybacz, ale naprawdę mam nadzieje, że to dojdzie do Ciebie i dzięki temu będziesz mógł się doskonalić oraz przekazywać swoje umiejętności w jak najlepszy sposób innym (czego z całego serca Panu życzę).

    Kupno Debugger'a przez początkującego nie sprawia, że jest profesjonalistą, a profesjonalista nazywający siebie samego w ten sposób programujący bez użycia debugger'a profesjonalistą nie jest.

    Pozdrawiam i życzę dalszych sukcesów. Prosiłbym o zrozumienie, że swoimi wypowiedziami nie miałem zamiaru, ani najmniejszej ochoty atakować Ciebie, ani kogo kolwiek innego.

    OdpowiedzUsuń
    Odpowiedzi
    1. Myślałem że skoro ty przeprosiłeś i ja przeprosiłem - to dajmy już sobie spokój określaniu się nawzajem jakimiś nazwami.

      Ja też wyraźnie mówiłem, jeśli chodzi o Debuger, że jest to narzędzie dla ludzi - a pokłócić się mogę o sens jego stosowania z kimś kto określa się jako super znawca programowania - a tak wyniknęło z twojego pierwszego wpisu i gotów jestem stanąć do zawodów z taką osobą w szybkości tworzenia projektu nawet jeśli ty będziesz się posługiwał debugerem a ja nie (mówię tu o AVR'kach). Bo sorki, ale za długo bawię się w programowanie. I jeszcze raz z całą mocą podkreślam - nigdy nie uważałem że Debuger nawet dla AVR to coś złego wręcz przeciwnie. Ale ja wolę uczyć kogoś kto zaczyna swoją drogę - najpierw bez debugera - żeby potrafił sam myśleć programistycznie i analitycznie przede wszystkim, bez wysługiwania się narzędziami. Bo jeszcze raz powiem, widziałem już nie jednego początkującego, któremu nakładziono do głowy gdy pytał na "jakimś" forum od czego zacząć, żeby wziął sobie od razu debuger, super programator z możliwością debugowania i nie wiadomo jakie cuda na kiju - a za chwilę taki człowiek zwraca się na tym samym, kurczę forum do tych wujków "dobra rada" że ma już ten debuger ale nie może dojść co jest nie tak że mu dioda LED nie gaśnie gdy po jednorazowym klikaniu klawiszem - gdy testuje pierwsze programy. I CO ???????

      ..... i wtedy amba !!! dobrzy wujkowie albo się zmywają z poradami albo co gorsze - tłumaczą mu żeby sobie głowy nie zawracał programowaniem bo to nie dla niego skoro nawet z debugerem nie może sobie poradzić i że taki tępy!

      I jeszcze raz podkreślam - debuger jest po to żeby go jak najbardziej używać - tylko z głową panie, z głową!

      a to jest różnica.

      Usuń
  33. Witam
    @mirekk36 mógłbyś wspomnieć coś o instalacji najnowszej parki plugina AVR 2.4.0 + Eclips 2.4.2?
    Aktualnie po skorzystaniu z instrukcji z tego filmu:
    http://www.youtube.com/watch?v=A_neNE0-KUM&feature=fvwrel
    zatrzymałem się na błędzie kompilacji. Otóż przy dyrektywie "#include " pojawia się znak zapytanie (nie działają też podpowiedzi ctrl+space), a przy kompilacji wyskakuje błąd:
    "Problems occurred building the selected resources.
    Errors running builder 'CDT Builder' on project 'test'.

    java.lang.NullPointerException"
    Kod programu taki jak na w.w. filmie.
    Może masz jakiś pomysł jak to ruszyć?

    OdpowiedzUsuń
  34. Ok, już nie aktualne.
    Na Eclipse 3.7.2 ruszyło z kopyta ;)

    OdpowiedzUsuń
  35. Witam,
    jak jest w przypadku NetBeans? Czy w nim też da się tak łatwo pisać na AVR?
    Jak zacząłem pisać w Javie (taki trochę wymóg) to stałem przed wyborem środowiska i mój wybór padł na NetBeans (odpadł Eclipse). Teraz umię z niego korzystać i dobrze mi się w nim pisać, fajnie byłoby też pisać w nim na AVR.
    Tak się też zastanawiałem, na AVR można pisać w szeregu różnych języków takich np. jak assembler, basic, c i obiektowo w c++, ciekawi mnie czy można pisać także w javie.

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie wiem czy jest AVRPlugIn do NetBeans - dlatego nie odpowiem czy można w tym środowisku :(

      Natomiast jeśli chodzi o programowanie procków AVR w Java, nawet nie tylko takich 8-bitowców ale nawet większych nieco - to raczej jakieś duże nieporozumienie niestety :( .... Najpierw trzeba by było stawiać jakiś system który tą javę będzie uruchamiał ;) a gdzie jeszcze mowa o jej przetwarzaniu .... a już o samym programie ;) ??? nie nie - to niedobry pomysł

      Usuń
  36. Przyznam się bez bicia, że nie dałem rady przebrnąć przez wszystkie komentarze (może przeoczyłem odpowiedź), ale treść posta przeczytałem z dużym zainteresowaniem. Do tej pory działałem na AS5 i chyba udało się Koledze przekonać mnie do przesiadki na Eclipse :) Dodam, że posiadam Kolegi książkę, choć korzystałem z niej wyrywkowo (C już od jakiegoś czasu znam) - prawdziwy majstersztyk i wielkie dzięki, bo sporo mi w głowie rozjaśniła.
    Do rzeczy: co Kolega sądzi o najnowszej wersji atmelowskiego środowiska, konkretniej Atmel Studio 6? Może warto zaktualizować wpis, bo AS6 zbiera w internecie raczej pozytywne opinie?
    Pozdrawiam serdecznie

    OdpowiedzUsuń
    Odpowiedzi
    1. Sam czekałem na AS6 jak na zbawienie ;) ... ale niestety AS6 to w zasadzie jeśli chodzi o AVR to dokładnie to samo co AS5 :( Dodano tylko obsługę procków ARM.

      Najgorsze rzeczy jak np najbardziej durna dla mnie możliwość zmiany taktowania procka - nadal tak samo - zagrzebana w czeluściach ustawień toolchaina. Sam toolchain też się nie zmienił. Reasumując - ja czekam na AS7 ;) a w międzyczasie działam na ECLIPSE - oczywiście jeśli chodzi o starsze procesory. Bo co tu dużo ukrywać nie pojawia się nowsza wersja WinAVR więc nie ma rady.

      Jak na razie na typowych AVRkach - wolę działać zdecydowanie w Eclipse - pomijam już nawet porównania na PLUS jeśli chodzi o sam edytor i wygodę nadal Eclipsa w porównaniu z AS5/6.

      Nie mniej jednak jeśli będę chciał sięgnąć po nowszego procka to co? nie pozostanie mi nic innego jak płakać i używać AS6.

      Popatrz i poczytaj sobie na naszym forum:

      www.forum.atnel.pl

      różne poradniki i opisy ECLIPSA oraz co on może a czego jeszcze długo nie uświadczysz w AS ... to może cię przekona troszkę - przynajmniej jeśli chodzi o typowe stare że tak powiem AVR'ki

      Usuń
    2. A przy okazji zapraszam do rzucenia okiem na drugą część książki ;)

      http://www.sklep.atnel.pl/pl/p/KSIAZKA-II-DVD/36

      Usuń
  37. Dziękuję za błyskawiczną odpowiedź i linki, zdecydowałem się już i lada moment spróbuję stawiać pierwsze kroki w Eclipse :)
    Co do książki - planujesz może w przyszłości publikację w wersji elektronicznej? Mam tu na myśli format Kindla (mobi, epub). Można by przy okazji zejść trochę z ceny...
    Pozdrawiam

    OdpowiedzUsuń
  38. Wiem, że większość ludzi (przyzwyczajona zresztą od lat przez praktyki większości wydawnictw) uważa, że płyty CD/DVD dołączane do książek to jakiś szmelc i reklama i że nie warto nawet tam zaglądać. Stąd nie przywiązują do nich większej uwagi. A szkoda. Bo ja lubię dobre książki ale z dobrą płytą itp... dlatego sam tak podszedłem przy tworzeniu książek. I dlatego na płytach DVD jest mnóstwo WAŻNEGO materiału, powiedziałbym, że stanowi on o 30-40% wartości samej książki. A coś czuję, że kolega też nie zajrzał na DVD. A tam jest coś takiego (mowa o pierwszej książce) jak:

    LEKCJE VIDEO

    a w nich sporo o Eclipse i jak wystartować w 5 minut. Już po tych lekcjach mnóstwo ludzi wystartowało z Eclipsem z kopyta. A ilu zajrzało dopiero do nich po pół roku - jak im w mailu podpowiedziałem że coś takiego jest ;) ... i potem pluli sobie w brodę że wcześniej sami nie zajrzeli na płytę

    dlatego właśnie po pierwsze polecam zajrzeć do płytki - w celu szybkiego startu z Eclipsem, i ew zainstalować sobie najnowszą wersję wraz z najnowszym pluginem dla AVR bazując na tym:

    http://mirekk36.blogspot.com/2012/04/eclipse-instalacja-avr-plugin.html

    i w nawiązaniu do tego - (na forum pisałem jeszcze o innych czynnikach dlaczego druga książka jest sporo droższa) .... proszę się zastanowić co by było z przekazaniem wiedzy w takiej właśnie postaci jak DVD, VIDEO itp - przy takich eBookach.

    OdpowiedzUsuń
  39. A bez odrobiny wysiłku i bez problemów jakie serwuje AVRS 5 i 6 można działać w Eclipse także pod linuxem - więc jak to było w reklamie biedronki czy tam dosi, "po co przepłacać?" .... oczywiście chodzi o przepłacanie nerwami i zdrowiem. Tyle powiem.

    OdpowiedzUsuń
  40. Panie Mirku chodziło mi oto, że zamiast starego już WinAVR można wykorzystać AVRToolchain od Atmela i jeśli chcemy pracować z nowszymi procesorami nie jesteśmy skazani na AVRStudio 6. Na pewno nim wyjdzie nowy WinAVR pojawi się nowszy AVR Eclipse Plugin.

    OdpowiedzUsuń
  41. Przepraszam, źle zrozumiałem - jestem zakręcony ;)

    A przecież słusznie prawiłeś waćpan w całej rozciągłości ... chyba muszę wyjść na spacer, bo od uzupełniania nowej witryny atnela, której premiera już wkrótce - w oczach mi się też plącze ;)

    OdpowiedzUsuń
  42. @SunRiver:
    Środowisko (IDE) Keil uVision (v3 jak również i v4) nie jest oparte na Eclipse. Nie jest nawet podobne do Eclipse (co nie umniejsza jednak zalet Eclipse).

    Jednak jest pewien element, którego mi osobiście brakuje w Eclipse. Jest to porządny debugger.
    Każdy kto używał tych droższych narzędzi - chociażby TRACE32 firmy Lauterbach - wie co znaczy słowo porządny.
    Osobiście do AVR i do LPC1xxx (ARM) stosuje jednak Eclipse.

    OdpowiedzUsuń
    Odpowiedzi
    1. No ale co za problem użyć debugera z AVRS jeśli jest potrzebny czasem. Czy korzystanie z Eclipse powoduje, że z kompa trzeba wykasować każde inne IDE ? ;)

      Usuń
  43. Witam,
    mam problem z funkcjami _delay_us i _ms tzn. odmierzany czas nie odpowiada temu zadanemu. F_CPU jest skonfigurowane w jednym miejscu tzn. w ustawieniach optymalizacja włączona -os. Co może być nie tak ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Rozumiem że korzystasz z Elipse ???

      jeśli tak to pozostaje ci jeszcze sprawdzić Fusebity bo pewnie o nich zapomniałeś hmmm ? i nie przestawiłeś procka z domyślnego fabrycznego taktowania 1MHz na inne?

      Usuń
  44. Procek to AtXmega a on takiej opcji nie ma.
    Port szeregowy działa ok, więc częstotliwość CPU musi być ok.

    OdpowiedzUsuń
    Odpowiedzi
    1. O! no to dobrze że nie procek ARM ;) .... może tak warto na samym początku napisać czego dotyczy pytanie a nie na końcu ???

      Niestety tutaj ci nie pomogę bo Xmegami się jeszcze nie bawiłem więc zmyślać nie będę.

      Usuń
  45. Witam
    Proszę o podpowiedź gdzie tkwi błąd. Po kompilacji tak prostego programu jak poniżej otrzymuję komunikaty
    "
    ../main.c:25: warning: implicit declaration of function '_delay_ms''
    "

    "
    main.c:(.text+0x10): undefined reference to `_delay_ms'
    make: *** [Test_1.elf] Error 1
    "
    Poniżej kod programu oczywiście program jest tylko do sprawdzenia co jest nie tak.
    procesor ATTiny13


    "
    #include
    #include

    #define LED_PIN (1<<PB4)
    #define LED_ON PORTB &= ~LED_PIN
    #define LED_OFF PORTB |= LED_PIN
    #define LED_TOG PORTB ^=LED_PIN



    int main(void)
    {
    DDRB |=LED_PIN;

    while(1)
    {
    LED_TOG;
    _delay_ms(1000);
    }
    }
    Pozdrawiam.
    Tomasz

    OdpowiedzUsuń
    Odpowiedzi
    1. Po pierwsze to proszę takie pytania zadawać na forum

      www.forum.atnel.pl

      bo tam można formatować ładnie kod itp

      po drugie skąd kolega wziął taki przykład programu w którym nie ma prawidłowo zainkludowanych plików nagłówkowych jeśli chodzi o pliki systemowe

      po trzecie błąd właśnie związany jest z brakiem tych inkludów czyli

      #include
      #include

      Usuń
    2. eeeh nie tu zżera nawiasy ostre - więc w ogóle nie da się prawidłowo przedstawić kodu ani odpowiedzieć. Dlatego zdecydowanie zapraszam na forum ;)

      Usuń
  46. Eclipse jest bez wątpienia potężnym i bardzo wszechstronnym narzędziem, ja jednak po przesiadce z win na linuxa i mając do wyboru między innymi eclipse i codeblocks wybrałem to drugie. Z prostego powodu. Był pewien okres że dysponowałem dosyć starym laptopem (ok 8-10 lat, nie wiem dokładnie) i eclipse chodziło na nim bardzo topornie, samo tworzenie nowego projektu trwało kilka minut. Codeblocks działało na nim płynnie, żadnych przycięć. No i tak się przyzwyczaiłem. Jakiś również anonimowy kolega 2 listopada 2011 o 19:55 coś wspominał o braku "przycisku integrującego z programatorem", podejrzewam że kolega nie mógł wgrać programu z poziomu IDE codeblocks. Jest to możliwe, przykład jak skonfigurować codeblocks do współpracy z ispasp jest tutaj http://www.blue17.elektroda.eu/usbasp/1045
    Pozdrawiam

    OdpowiedzUsuń
  47. Panie Mirku, dziękuje bardzo za poradnik, Eclipse jest naprawdę super w porównaniu do AVRStudio na którym do tej pory pracowałem. Mam pytanie odnośnie wersji Eclipse jak np. Juno, Indigo, Galileo itd. Czym te wersje się różnią ??

    OdpowiedzUsuń
  48. CodeBlocks jest dobre do samego w sobie pisania w C/C++ szczególnie pod Linuxem bardzo dobrze się sprawuje.

    OdpowiedzUsuń
    Odpowiedzi
    1. Też tak słyszałem ;) ... instalowałem też sobie swego czasu pod Windows, też fajny edytorek do pisania kodów.

      Usuń
    2. Bardzo dobrze działa tam IntelliSense.

      Usuń
  49. Witam.
    Nie jestem super fachowcem ani jeżeli chodzi o AVR ani programowanie (ogólnie) choć więcej styczności mam z programowaniem jako takim i dziwią mnie wypowiedzi o nieużywaniu debuggera w projektach do AVR. To trochę tak jakby elektryk wysokich napięć twierdził że w instalacji 220 V to językiem fazę sprawdza - bo to dla niego pestka.

    Z wyrazami szacunku za całość strony i porad.
    Andrzej.

    OdpowiedzUsuń
    Odpowiedzi
    1. Może kolega trochę opacznie zrozumiał, przynajmniej moje wypowiedzi o nieużywaniu debugera więc ja swoje zdanie doprecyzuję.

      Po pierwsze to że sam nie używam w ogóle debugera do tak małych aplikacji na takie procki 8-bitowe nie oznacza, że jestem przeciwny aby inni korzystali.

      Nie mniej jednak - ja kieruję swój przekaz głównie do początkujących i tu rzeczywiście nawet namawiam do nieużywania debugera szczególnie na początku. Dlaczego? Ano dlatego panie kolego - że warto się nauczyć innych o wiele prostszych najpierw metod debugowania, chociażby takich jakie opisuję w swojej pierwszej książce:

      http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

      gdzie wspominam o czymś takim np jak "debuger na jednej diodzie LED", ale także o debugowaniu z wykorzystaniem RS232. W ogóle o umiejętności - dzielenia problemów które zaistniały w kodzie na mniejsze kawałki, podział logiczny aplikacji itp ... Wtedy można się dużo nauczyć a później wspomaganie się debugerem może być dopiero owocne. A tak ? Wystarczy poczytać na forach - początkujący, którym inni na siłę wmawiają żeby zaczynali od debugera - później debugują w nim przez pół życia aplikację z przysłowiowym miganiem pojedynczą diodą LED. Trochę przejaskrawiam ale bez przesady - czasem warto użyć głowy i problemy na pewnych poziomach rozwiązywać niejako automatycznie a debugera sobie zostawić na bardziej skomplikowane projekty.

      Tak to wygląda z mojej strony, a nie że nie polecam w ogóle debugera. Sam korzystam ale TYLKO przy pisaniu programów na PC i najczęściej gdy tworzę aplikacje wielowątkowe.

      Usuń
  50. Jestem zawiedziony tym ECLIPSE, ale nie dlatego ze to niedobry program tyko dla tego, że to jest "ciężarówka" dla mojego komputera. Dziękuję za uruchamianie się przez 7 minut... wszystkie genialne poprawki ulotnią mi się z głowy w tym czasie.
    Nadal pozostanę przy WinAVR przez jakiś czas...

    OdpowiedzUsuń
    Odpowiedzi
    1. No na słaby komputer nie ma rady - pewnie że z tego powodu nie ma co się męczyć. Tylko kolega troszkę myli. Eclipse to nie odpowiednik WinAVR, bo przecież Eclipse tak samo korzysta z kompilatora WinAVR. Koledze może chodziło o Programmers Notepad, który jest standardowo dołączony do WinAVR.

      Ale to ja już bym na miejscu kolegi zamiast PN, odpalił sobie albo AVR Studio 4.xx albo CodeBlocks. Bo jednak PN to lekka masakra :(

      Usuń
  51. Hey, Ja cały czas "lecę" albo na PN albo AVR Studio 4 (jak cos potrzebuję zasymulować, sprawdzić ustawienie rejestrów). Ostatnio przypadkowo znalazłem Pana wątek/blog i postanowiłem sprawdzić jak działa Eclipse Indigo (developer c/c++ ver.)

    Poboba mi się:
    - "podpowaidanie" czyli ctrl+spacja,
    - "idz do" referencji i definicji
    - to ze jest przycisk programowania ( a przecież to nie jest środowisko programistyczne np avr)
    - duży wybór programatorów

    Niby proste rzeczy ale cieszą.

    Ale.. co zauważyłem w zasadzie od razu testując to środowisko (minusy):
    - wybrałem programator ("ponyprog stk200" lub "at-isp 1.1") (programator podłączony do port LPT1), niestety przy probie programowania eclipse zgłasza błąd zablokowanego portu "avrdude: cant open port device giveio"

    - ok .. postanowiłem skompilowany program wrzucić (hexa) poprzez tradycyjną sprawdzoną metodę czyli program PonyProg i programator podłączony do port LPT1. oczywiście kompilowałem projekt, który już wcześniej miałem wy-edytowany w PN i działający poprawnie. Efekt był taki ze program wystartował ale np timery nie działały jak powinny działać, mimo ze w Eclipse wybrałem poprawnie "Target Hardware: ATmega8-1MHz (tak jak to miałem zrobione w makefile w PN projekcie). Nie używam żadnych dodatkowych definicji Fosc w plikach źródłowych. Nie zmieniałem tez fusów bo sa ustawione na 1MHz wew. oscylatora.

    Nie znalazłem żadnych dodatkowych opcji gdzie mógłbym ustawić "cos" co pozwoli mi poprawić powyższe błędy/minusy.
    Zatem .. osoby, które zaczynają pisać programy dla AVR lepiej niech zaczną od AVR S4 lub PN, bo będą męczyć się nie wiedząc czemu program nie działa im.

    OdpowiedzUsuń
    Odpowiedzi
    1. Gdybym tak ja miał za każdym razem się poddawać gdy natknę się na jakiś minus to chyba dzisiaj w ogóle bym nie robił tego co robię.

      Pisze kolega o minusie STK200 że nie działa pod Eclipsem ... a doczytał kolega że to nie zależy od Eclipsa tylko od AVRDUDE którym się posługuje Eclipse przez Plugin AVR ? Poza tym błąd o którym mowa z tym "giveio" jest już znany jak świat i opisany w internecie i jeśli kolega działa na WinXP to są setki tysięcy sposobów żeby to rozwiązać. Lepiej zapytać jaki to sposób niż od razu rzucać w diabły Eclipsa ;) chętnie bym podpowiedział. No ale dodam jeszcze jedno - narzeka kolega na to że ma problem z STK200 pod Eclipse a przypadkiem pod AVR Studio nie ma tego problemu ? ;) pod AVR Studio w ogóle ten programator nie zostanie obsłużony. A teraz podpowiedź - proszę sobie pobrać MkAvrCalculator nawet w wersjii FREE i zainstalować z jego zakładki "Ustawienia" AVRDUDE, ta opcja przy okazji poprawnie zainstaluje ale tylko w WindowsXP to całe "giveio". Niestety pod kolejnymi Windowsami 7/8 i Vista nie ma już wsparcia dla giveio.

      No ale ten DRUGI opisany MINUS że niby timery nie działają po kompilacji w ECLIPSE to już mega KURIOZUM, więc zanim kolega zacznie nawoływać do AVR Studio albo PN zamiast Eclipsa to lepiej się trochę zastanowić co się pisze albo dopytać chociaż - zawsze służę pomocą a nie się od razu załamywać.

      Przypomnę koledze więc że ECLIPSE to nie KOMPILATOR! ;) Eclipse korzysta z kompilatora np WinAVR czyli z tego samego z którego kolega korzysta pisząc w PN. Więc argument że TIMERY nie działały po kompilacji "w eclipse" ..... ;) .... teraz już chyba kolega rozumie jaką gafę tu strzelił ?

      Polecam więc poczytać trochę tego bloga, zapraszam na nasze forum

      www.forum.atnel.pl

      i się troszkę więcej dowiedzieć o Eclipse. Można też do mnie napisać maila, złapać mnie na Skype chętnie pomogę szybciej wystartować z porządnym środowiskiem OK ?

      Usuń
  52. Szybka reakcja :) BTW .. Witam w nowym roku.

    Zatem mieszczę się w grupie "szczęśliwców-inaczej", którzy nie mają juz XP. Nici z możliwości programowania za z poziomu Eclipse. O tym powinien Pan wspomnieć już na samym początku. Nie jest powiedziane ze muszę wiedzieć wszytko o wszystkich programatorach, ustawieniach itp. Tyczy się o również w przypadku osób, które chcą zacząć pisać programy pod AVRki.

    Co do AVR studio .. i stk200 możliwe ze palnąłem gafę. Dawno nie miałem powodu odpalenia go.

    Sprawa Timerów .. wiem ze kompilator z pakietu WINAVR jest używany do kompilacji, i domyślam sie ze problem tkwi w makefile utworzonym przez eclipse ale skoro pisze w nim nie edytować to nie edytować! Zatem ustawiając opcję "Target Hardware: ATmega8-1MHz" powinno byc wszytko cacy.
    W eclipse powinna byc opcja, ktora wrzuca mi wszystkie ustawienia do makefile, czyli powyższe ustawienie, jak i pliki sródłowe, ktore maja być kompilowane/linkowane oraz możliwość ustawienie np opcji printf i scanf. W tej chwili to mam cos tam poustawiane w Eclipse poprzez plugin avr i niby ma byc ok a nie jest.
    Nie podawałbym tego przykładu jak (mojego programy z timer1) jakby faktycznie nie bylo problemu. Skoro NP używając moich ustawień makefile kompiluje poprawnie program, tzn działa jak powinien, a Eclipse nie, to coś jest nie halo z tym makefile utworzonym przez eclipse.

    Nie przeczę ze nie ma takiej możliwości. Skoro nie znalazłem bez pomocy Pana lub wujka Google to nie jest to zbyt intuicyjne. A co maja powiedzieć nowicjusze?

    Nie mam zamiaru obrażać Pana ani Eclipse, lecz chcę wytkać to co brakuje w Eclipse lub Pana stronie - skoro bardzo Pan poleca to środowisko prog.

    I proszę nie pisać ze mam sobie poszukać rozwiązania gdzieś tam :) Jakbym czytał gdzieś tam to nie czytałbym Pana strony.

    OdpowiedzUsuń
    Odpowiedzi
    1. Przede wszystkim jeśli czymś uraziłem to przepraszam nie miałem tego na celu.

      A teraz kilka słów wyjaśnień dalszych - bo chętnie podyskutuję. Otóż stwierdzenie że ci którzy nie mają XP to nie mają możliwości programowania z poziomu Eclipse - no przepraszam - na prawdę ale to już przesada ;) .... USBASP i po kłopocie. Więc z tym nawet nie będę polemizował ok?

      Pisząc kod w Eclipse nie muszę martwić się o makefile, to OGROMNA zaleta! ale można wpływać na jego kształt poprzez wygodne ustawienia i jeśli kolega jeszcze nie umie się w tym poruszać to niech nie pisze że to jest straszne czy trudne - nie po to tworzę poradniki. W mojej książce na dołączonej płycie DVD jest mnóstwo informacji na temat pracy z Eclipse dla początkujących. A gdyby z tego powodu że trzeba się czegoś nauczyć - a mi się nie chce miałbym wracać do epoki króla ćwieczka (przepraszam za określenie) ... czyli do PN to na prawdę nieporozumienie. Więc to że coś koledze nie działało z timerami i bez podania przykładu kodu tylko ot "takim sobie (przepraszam) czczym pisaniem" i na tej podstawie negowaniem ECLIPSE to kolejne nieporozumienie. Jak chce kolega dyskutować o takich szczegółach to zapraszam serdecznie na nasze forum tam można pięknie zaprezentować kod i dopytać jak się czegoś nie wie.

      Reasumując co kolega może pisać o tym co brakuje czy tam wytykać jak widzę że nie zna kolega tego co robię, co piszę, książek i innych rzeczy.

      przepraszam ale takie "wytykanie" niestety zaczyna ocierać się o "przygadywanie"

      a tym bardziej proszę nie polecać INNYCH rozwiązań niż ja tu promuję nie mając konkretnych argumentów. Bo przykro mi ale kolejne takie wpisy będę zmuszony usunąć.

      A o nowicjuszów proszę się nie martwić, proszę poczytać inne opinie na tym blogu, na naszym forum, na youtube do poradników.

      Na przyszłość zamiast wytykać - proszę lepiej samemu zabrać się za pomaganie nowicjuszom - to będzie lepsze podejście - gwarantuję.

      Usuń
  53. Witam,

    Gdzie w ATmel studio 6 należy umieścić informację o częstotliwości taktowania zegara MCU "-DF_CPU 8000000"?

    Czy jest to w Project->Other Properties->Toolchain->AVR/GNU C Compiler i tam w "All Options:" to dodać?

    Domyślnie mam:
    "-funsigned-char -funsigned-bitfields -O1 -fpack-struct -fshort-enums -g2 -Wall -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -mmcu=atmega8a"

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie udzielam żadnego wsparcia dla kociego AVR Studio, jak masz pytania na temat Eclipse to śmiało dawaj - chętnie pomogę.

      Usuń
  54. WItam

    Jako poczatkujacy zapytam czy da sie w latwy sposob ( dla poczatkujacego) uzywac USBasp by programowac bezposrednio z Eclipse?

    Tak jak jest to w bascomie czyli po napisaniu softu naciskamy kompilacje + przesyl do uC (2 przyciski) i juz procek zaprogramowany.

    OdpowiedzUsuń
    Odpowiedzi
    1. Oczywiście, że się da - akurat USBASP jest do tego można powiedzieć wprost stworzone i tak się składa, że to mój ulubiony programator, ja praktycznie korzystam TYLKO z USBASP ;)

      Przecież chyba w tym filmiku na końcu artykułu - pokazuję jak skonfigurować sobie także USBASP w Eclipse - nie oglądałeś ?

      jak coś to śmiało pytaj albo łap mnie też na Skype - to jest 5 sek roboty a później w Eclipse klikasz TYLKO jeden klawisz po kompilacji i wsad leci do procka ;)

      Usuń
  55. Dziekuje za szybka odpowiedz, w niedziele o tej porze robi wrazenie:)
    Narazie zakupilem ta niebieska ksiazke :) i bede zaczynal nauke C

    Zastanawiam sie tylko czy eclipse (bo jakos nie moge znalezc min wymagan) pojdzie na starym kompie (1,6ghz, pamiec 256 MB)?

    Pytam cz w ogole jest sens probowac instalowac czy najpierw poszukac swiezszy PC?

    Pozdrawiam
    Slawomir

    OdpowiedzUsuń
    Odpowiedzi
    1. Myślę że spróbować warto zainstalować i tak na 100% będzie szybciej działać Eclipse niż najnowsze kocie AVR Studio ....

      W książce na DVD pamiętaj że masz lekcje VIDEO także do Eclipsa - obejrzyj a nawet masz gotowe instalki na DVD

      więc spróbować można od ręki - wystarczy przegrać na dysk - zresztą jak mówię zobacz sam do tych lekcji - masz tam wszystko po kolei

      życzę przyjemnej zabawy i przygody

      Usuń
  56. Witam,

    Zainstalowalem eclipse, kupilem niebieska ksiazke i mam pierwszy problem.

    Prosty program: po wlaczeniu wolno miga dioda a po nacisnieciu przycisku zmienna tryb przyjmie 2 i wejdzie (switch/case) do trybu szybkiego migania.

    Procek Atiiny13, diody pod PB0 i PB1 a przycisk ( na dlugim przewodzie zwierany do masy) do PB4. problem jest taki ze nie dziala stabilnie - po wlaczeniu zasilania w polowie przypadkow od razu wchodzi w tryb 2 czyli szybkie miganie.

    Wyglada to jak by nie byl podciagany pull up PB4 poniewaz wtedy na pinie przycisku jest ok 2V. Jesli jednak wystartuje prawidlowo to jest 5V. Problem znika gdy dam zewnetrzny rezystor podciagajacy do +5V przycisk albo po prostu odlacze przycisk (jest na dlugim przewodzie).

    Na zasilaniu jest 100uF + 100nF.

    Inny sposob rozwiazania problemu (programowy)- dodalem po ustawieniu portB delay 20ms i dziala Ok, tylko nie rozumiem dlaczego tak sie dzieje?

    Oraz drugie pytanie, eclipse wykrywa attiny 13 jednak w tabeli wyboru taktowania nie ma wartosci 9600000Mhz, czy jakos to mozna zmienic ?

    Listing:

    #include
    #include
    #define F_CPU 9600000L

    int main(void)
    {
    unsigned char tryb=1;

    DDRB = 15; /* 0xFF binarnie 0000 1111 */
    PORTB=16;
    _delay_ms(20);
    /* Początek nieskończonej pętli */
    while(1)
    {
    switch (tryb)
    {
    case 1:
    while (PINB & 16)
    {
    PORTB |= 3; /* petla do czasu nacisniecia przycisku*/
    _delay_ms(580);
    PORTB &= 252;
    _delay_ms(580);
    }
    _delay_ms(20);

    while (!(PINB & 16)) /* petla do czasu zwolnienia przycisku*/
    { }
    _delay_ms(20);
    tryb=tryb+1;
    break;
    case 2:
    while (1)
    {
    PORTB |= 3;
    _delay_ms(80);
    PORTB &= 252;
    _delay_ms(80);

    }

    break;
    }


    }
    }

    OdpowiedzUsuń
    Odpowiedzi
    1. eeeeeh panie kolego ... z takimi pytaniami i kodami programów to na forum zapraszam:

      www.forum.atnel.pl

      a nie tu na blogu - przecież jak ten kod tu wygląda :( więc na przyszłość proszę na forum ok... a tymczasem odpowiem na to na co się da odpowiedzieć.

      Na liście Eclipse jeśli nie ma 9600000 to przecież można tam z ręki tę wartość wpisać - w czym problem.

      jeśli chodzi o ten delay 20ms na starcie to proszę poczytać moje artykuły na blogu na temat drgań styków bo dokładnie opisuję dlaczego tak się dzieje czasem w takich przykładowych programach

      http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html

      Usuń
  57. ok, bede ogladac:)
    Mam jeszcze pytanie gdzie mozna wybrac stopien optymalizacji jesli chodzi o C i eclipse?
    Zapewne jest jakis ptaszek czy tez wybor opcji tylko ja nie moge znalezc:(

    Chodzi mi o zmniejszenie kodu bo teraz zajmuje 10% wiecej niz w Bascomie :(

    OdpowiedzUsuń
    Odpowiedzi
    1. Domyślnie Eclipse i plugin AVR ustawiają najwyższy stopień optymalizacji czyli -Os a nie tak jak w kocim AVR Studio .... Więc już większego nie ustawisz - a skoro ci kod zajmuje więcej miejsca niż w Bascomie to powód jest TYLKO i WYŁĄCZNIE jeden - daję za to głowę - masz poważne babole w programie

      Usuń
    2. aha - ale jak coś to ustawia się ten stopień optymalizacji we właściwościach projektu - w razie czego masz to na lekcjach VIDEO na płycie DVD dołączonej do książki - pooglądaj je ;)

      Usuń
  58. Szanowny Panie czy mógłby Pan zweryfikować opinię na temat AVR Studio. Ukazała się wersja 6.1 AVR Studio proszę o ocenę tego produktu.

    OdpowiedzUsuń
    Odpowiedzi
    1. Takie pytanie to zapowiedź - tak jakby znacząco coś się zmieniło w Atmel Studio ;) ... ja rzeczywiście z uwagi na to że przez wiele baboli, które ono posiada hmm może (posiadało) nawet ostatnio nie śledzę co się dzieje i czy są nowsze wersje. Więc dziękuję za informację. Postaram się sprawdzić i dam tutaj odpowiedź jak to widać z mojego punku widzenia (nadmienię wyraźnie że chodzi o punkt widzenia początkującej osoby - bo tylko pod takim kątem oceniam Atmel Studio ... dla osób zaawansowanych nie widzę nic złego w tym środowisku)

      Usuń
  59. Witam serdecznie.
    Przede wszystkim bardzo dziękuję za całokształt pracy włożonej w naukę laików takich jak ja. Bez Pana pracy na pewno bym się za to nigdy nie zabrał.
    Kilka tygodni temu na forum majsterkowo znalazłem kilka fajnych rzeczy o Arduino, zacząłem grzebać i trafiłem na AVR. Potem na Youtube na Pańskie filmiki, no a potem na ten blog.
    Kupiłem minimalny zestaw startowy (programator, płytka stykowa itd.) i cały tydzień próbowałem z przyciskiem i diodami. Z tutoriali udało mi się naprawdę wiele, od konfiguracji aplikacji poprzez miganie diodami i używania przycisku.
    Moją zmorą było jednak stworzenie projektu, którym sterowałbym diodą za pomocą przycisku (klik świeci, klik nie świeci, w trybie przytrzymywania nie miałem problemu). Już miałem sobie dać spokój na parę dni, a tu trach wpadłem na lekcję nr 1 i pozwoliłem sobie przepisać z filmiku kod źródłowy i oto moim oczom ukazał się w pełni działający przycisk.
    Właściwie wszystko jest logiczne w tym kodzie, ale próba zmiany jakiejś wartości właściwie od razu powoduje problem w działaniu. Nie wiem dlaczego ale program zaczyna u mnie ze świecącą diodą, mimo że w komentarzach programowych napisane jest, że na stracie nie powinna świecić. Skoro program działa o zmianę stanu to starałem się to zmienić poprzez zmianę wartości 1 na 0 na porcie diody, ale wówczas program nie działa.
    Czy mógłbym prosić o jakąś podpowiedź?
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Jasne - już odpowiadam .... przede wszystkim powodem takiego zachowania się programu są dwie przyczyny

      1. diody można podłączać do pinu procka na dwa sposoby, albo anodą albo katodą i co zrozumiałe wtedy świecą one albo od stanu wysokiego albo niskiego. Kolega podłączył więc diodę odwrotnie niż ja w ćwiczeniu, wystarczy to zmienić i będzie ok ;)

      2. kolega jest jeszcze na POCZĄTKU tej drogi i to normalne że trzeba się jeszcze sporo dowiedzieć ... dlatego same poradniki video to będzie mało - na sporo takich pytań odpowiedziałby kolega sobie mając w ręku tę książkę (Bluebooka)

      http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

      którą szczerze polecam. A w międzyczasie oczywiście czytać i oglądać poradniki, które są właśnie tylko UZUPEŁNIENIEM do moich książek. W tym konkretnym wypadku proszę sobie jeszcze KONIECZNIE zajrzeć tutaj ;)

      http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html

      też sporo się wyjaśni w związku z zadanym pytaniem

      Usuń
  60. Dziękuję za szybką odpowiedź. W tym tygodniu zrobiłem krok milowy w mojej nauce o AVR.
    Zaiste na Porcie był stan wysoki, kiedy zmieniłem go na niski wszystkie diody ruszyły wyłączone.
    Jeśli chodzi o książkę, to na pewno nabędę, ale jak to się mówi nie mogę przeginać w jednym miesiącu (żona i tak już miała ze mnie niewiele pożytku w tym tygodniu :) ).

    Ten artykuł o portach niby rozumiem, ale chyba jednak nie do końca. Na początku myślałem, że sterowanie odbywa się za pomocą zmiany 0 i 1 (1<<PB1) lub (0<<PB1), ale widzę że jednak znaki stanu są od tego. Proszę mi tylko pomóc zrozumieć różnicę pomiędzy zapisem takim PORTB |= (1<<PB0) ,a takim PORTB |= (0<<PB0) .

    Mam kilka pchełek, które mówią, że komenda nie ma efektu, jednak ten efekt jest bo po zmianie stanu konkretnej diody na wysoki pozniej ma on sens (guzik który wyłącza wszystkie przyciski - zmienia ich stan na niski) , czy występowanie tych pchełek czasami jest dopuszczalne?


    No nic, do 14 mam czas :) potem wraca żona z pracy. Muszę jeszcze wymyślić jak włączyć diodę przyciskiem na określony czas powiedzmy minutę.

    PS.
    Czysto orientacyjnie, bo jak wspomniałem w tym miesiącu żona i fundusze nie pozwolą mi na to, ale czyksiążkę można kupić tylko przez internet? Czy dostanę ją w Poznaniu na półce?

    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. No widzisz to, że nie rozumiesz na razie czym się różni zapis (1<<PB1) od (0<<PB1) i dlaczego ten drugi jest zły i nie ma sensu - wynika z tego, że się jeszcze nie zna podstaw języka C. A jest akurat na ten temat o PRZESUNIĘCIACH BITOWYCH (bo tak nazywają się te operacje cały podrozdział w książe) .... Nie mniej jednak proszę oto krótkie uproszczone wyjaśnienie

      wyrażenie ( n << x )

      to przesunięcie wartości liczbowej N w LEWO o X miejsc ....

      zatem wyobraź sobie

      ( 0 << 1 )

      co oznacza, przesuń zero o jedno miejsce w lewo - i co otrzymasz ? chyba się domyślasz - też ZERO, dlatego to nie ma sensu

      Do końca pewnie ci to nie wyjaśni wszystkiego - no ale też nie umiem i chyba nie można tego wyjaśnić w kilku zdaniach .... dlatego sporo informacji wolałem przekazać przez książki, a to co ciężko było mi przekazać przez książki - podaję w poradnikach także tych wideo i wtedy wszystko się fajnie uzupełnia.

      Książki na pewno są w księgarniach, zdaje się, że na Półwiejskiej w Poznaniu jest "nasza" księgarnia ... sprawdź proszę

      O! jest też ona na tej liście:

      http://atnel.pl/nasze-ksiegarnie.html

      Usuń
  61. Zanim obejrzałem ten poradnik to gdzieś już ktoś napisał (może nawet w forum Atnel) że AVR studio można porównać do zwykłego notatnika z Windowsa, a że już trochę w eclipsie sobie popisałem i zwróciłem uwagę na te charakterystyczne "robaczki" przy linijkach oznaczające błąd to od razu sobie pomyślałem ooo jaki ten AVR Studio musi być biedny :(

    Jeszcze mam takie pytanko albo może prośbę na następny ;) poradniczek odnośnie eclipsa
    zaciekawiła mnie taka zakładka (obok zakładki console)"AVR Supported MCUs" na której jak napiszemy program wyświetlają się zielone "fajki" i czerwone "X"y domyślam się że chodzi o kompatybilność danego kodu z danym mikrokontrolerem ,i zapewne jak mamy wszystkie fajki na zielono wtedy możemy spokojnie wgrać dany kod do tego avr ,Czy może się mylę ?

    OdpowiedzUsuń
  62. Ja jako, że sięgnąłem na starcie po złą książkę (AVR i ARM7. Programowanie mikrokontrolerów dla każdego) zacząłem od WinAVR i choc program jest prostszy trzeba wszystko robic ręcznie, w Eclipse, klik, klik i kod leci do uC. Ale jak dla mnie, program znacznie bardziej rozbudowany. Jasne, że znajdzie sie zawsze gremium krytyków - geniuszy dla których to będzie za mało, za dużo, etc.

    Ja jestem początkujący, usiłuje coś pisac, ale ze względu na małe dziecko, pozostaje mi tylko czas w pracy :)

    Zasadnośc nie umieszczania definicji F_CPU w kodzie programu w pełni do mnie przemawia. Ale jak mogę zmienic domyslną częstotliwośc na choby 8MHz. Napewno podczas tworzenia projektu, nastepnie w oknie konfiguracji projektu, w zakładce C/C++ Built > Environmen paramentr AVRTARGETFCPU. A jak się to ma do zmiany tej częstoliwosci z programu mkAVRCalculator?! bo powiem Panu, że troszkę mi to przysparza stresu bo prosty kod:

    #include
    #include

    //LED0
    #define LED_0 (1<<PD0)
    #define LED_0_ON PORTD &= ~LED_0//((DDRC |= LED_1) & (PORTC &= ~LED_1))
    #define LED_0_OFF PORTD |= LED_0

    //KEY_0
    #define KEY_0 (1<<PC0)
    #define KEY_0_DOWN !(PINC & KEY_0)

    int main(void)
    {
    DDRD |= LED_0;
    PORTD |= LED_0;
    DDRC &= ~KEY_0;
    PORTC |= KEY_0;

    while(1)
    if (KEY_0_DOWN)
    {
    _delay_ms(1000);
    if (KEY_0_DOWN) LED_0_ON;
    else
    LED_0_OFF;
    }
    }

    zwyczajnie nie działa poprawnie. Opóźnienie nie pasuje :)

    OdpowiedzUsuń
    Odpowiedzi
    1. No widzisz :

      Po PIERWSZE - zapraszam na nasze przyjazne forum: www.forum.atnel.pl z takimi pytaniami z kodem źródłowym - bo tu jak widzisz nic nie widać :(

      Po DRUGIE ... no nie działa ci bo nie rozumiesz (jak się domyślam po zadanym pytaniu) co to są Fusebity :( ... szkoda że jednak nie masz tej książki:

      http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

      ale ok ... nawet jak jej nie masz to musisz gdzie indziej doczytać co to są FUSEBITY w procku ... bo to jeszcze inna rzecz odpowiedzialna za czas wykonywania się operacji w procku OK ?

      myślę, że na naszym forum otrzymasz sporo wskazówek - zapraszam

      Usuń
    2. A zaskoczę Pana, bo książkę ową mam i właśnie sobie przeczytałem raz jeszcze o fuebitach. Może nie jasno się wyraziłem. Jakbym nie zmienił F_CPU dla 1MHz działa poprawnie a dla 8MHz już nie. Ale ma Pan rację, to nie miejsce i czas na takie pytania.
      Pozdrawiam

      Usuń
    3. Miejsce miejsce - ale powinieneś dokładniej opisać co próbujesz zrobić ? jak ustawiasz to w MkAvrCalculator - a tymczasem na forum można ładnie wkleić zrzut ekranu, pokazać kod w znacznikach syntax żeby wygodnie było przeglądać i wtedy jest o wiele łatwiej ci coś podpowiedzieć :)

      Usuń
  63. Witam Panie Kardas "ja sześćdziesiąt lat, ja stary", ale lubię Pana oglądać i słuchać.
    Pozdrawiam Władysław. ...

    OdpowiedzUsuń
    Odpowiedzi
    1. dziękuję i zapraszam, wkrótce ruszają kolejne poradniki ;)

      Usuń
  64. Tak na pewno będę korzystał.
    Tutaj jestem pierwszy raz i poznaję tajniki avr.
    Władysław ;)

    OdpowiedzUsuń
  65. Kupiłem tę książkę "Mikrokontrolery AVR. Język C - podstawy programowania". Boję się ją przeczytać. Pilnie proszę o wsparcie.

    OdpowiedzUsuń
    Odpowiedzi
    1. A co to ma niby oznaczać ?

      Usuń
    2. No bo jak jakaś dobra książka powoduje, że się od oderwać od niej nie można, to przy jednoczesnym jej czytaniu i konsumowaniu obiadu, kolacji i śniadania... istnieje duże ryzyko jej poplamienia. Strach pomyśleć, żeby gdzieś w środku nowej książki znalazły się tłuste plamy. Co mam robić?

      Usuń
    3. Idąc tym tropem rozumowania i poczucia humoru mogę jedynie zaproponować zawinięcie książki w miarę przeźroczystą folię do posiłków :D

      Usuń
    4. Co ci powim, to ci powim, ale tyż prowda... :D

      Usuń
  66. Jaką wersję ECLIPSE aktualnie wybrać do instalacji (grudzień 2014)

    OdpowiedzUsuń
    Odpowiedzi
    1. Zapraszam do obserwowania tego bloga na bieżąco, ponieważ staram się także na bieżąco informować o takich sprawach. Odpowiedź na to pytanie można znaleźć tutaj:

      http://mirekk36.blogspot.com/2014/11/avr-jak-zaczac-z-eclipse-luna.html

      Usuń