Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 29 mar 2025, o 15:57


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
    Autor Wiadomość
     Tytuł: Start z ATXMega
    PostNapisane: 16 lip 2014, o 15:22 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Obrazek
    Siemka, jako że ostatnio kupiłem sobie płytkę uruchomieniową z procesorem XMega, chciałbym rozpocząć cykl poradników
    dotyczący tych fajnych mikrokontolerków. Na płytce którą posiadam jest zamontowana ATXMega 128A3U która w porównaniu
    do modeli bez literki „U” na końcu posiada sprzętowe USB :) W tej części chciałbym poruszyć kwestie związane z
    skonfigurowaniem naszego ulubionego środowiska jakim jest Eclipse, wgrania do niego nowszej wersji AVRDude (6.1 mianowicie),
    które jest wymagane do programowania tego procesora. Starsza wersja też wspiera Xmegi, ale jest ich znacznie
    mniej w porównaniu do nowej wersji, co zresztą nie dziwi :D. Warto również wspomnieć, że stary plugin
    w Eclipse nie wspiera nowszej wersji AVRDude i należy wgrać nowszą jego wersję, ale o tym później ;)
    Na razie przejdźmy do omówienia nowości wprowadzonych w XMegach ;)

    Obrazek

    Na pewno należy wspomnieć o sporej liczbie nowych peryferii, które są zaczerpnięte z ARM. Są to między innymi DMA,
    EventSystem, RTC, DAC, etc. No i oczywiście jest ich dużo więcej w porównaniu do Atmeg. W ATXMegach normalnością
    są 4 moduły SPI, 4 UARTy czy 8 interfejsów TWI (I2C).
    Należy również wspomnieć, że odświeżeniu uległy rejestry, które są teraz ładnie uporządkowane w strukturach, które są
    identyczne dla peryferii. Od teraz nie ma żadnej różnicy, czy konfigurujesz SPI na porcie C (SPIC), czy SPI na porcie E (SPIE).
    Inżynierowie Atmela mieli na uwadze łatwość przenoszenia kodu między ATXMegami, no i najwyraźniej im się to w pewnym stopniu udało :)

    No i kolejną zmianą w XMegach jest zmiana interfejsu programowania. Od teraz nie zaprogramujemy ich starymi programatorami z SPI,
    trzeba mieć programator z możliwością programowania PDI (przykładowo MkII, którego posiadam i polecam). W przypadku Xmeg z
    hardware`owym interfejsem USB jest możliwość programowania ich przez Bootloader za pomocą Atmelowego FLIPa, jednak nie konieczne
    jest to najwygodniejsze i najszybsze rozwiązanie ;)

    Warto wspomnieć, że w ATXMegach nie uświadczymy zmiany taktowania przez fusebity :) Wszystko dzieje się programowo, więc odpada problem
    ewentualnej blokady procesora.

    Jest jeszcze wiele innych smaczków, ale o nich będzie mowa w dalszej części cyklu :)

    PRZYGOTOWANIE ŚRODOWISKA

    Wgranie nowego pluginu AVR w Eclipse
    Nie będę tutaj opisywał instalacji całego Eclipse tylko szybko opiszę co i jak z „wymianą” starego pluginu na nowy. Przypomnę tylko,
    że wymagane jest Eclipse z nowym toolchainem ;)

    Aby można było wygodnie programować Xmegi z poziomu Eclipse, należy zaktualizować plugin integrujący AVRDude i Eclispe.
    Aby to zrobić należy wejść w About Eclipse i odinstalować stary plugin.
    Tutaj przedstawiawiam na screenach jak to zrobić

    Obrazek

    Obrazek

    Obrazek

    Dalej nie będę przedstawiał, bo ja już mam to za sobą ;). Eclipse powinien się ponownie uruchomić,
    teraz należy zainstalować nową wersję pluginu AVR

    Obrazek

    Obrazek

    Obrazek
    Tutaj link do skopiowania ;) http://www.ijzerbout.nl/avr-eclipse/updatesite/

    Obrazek
    Dalej nie pokazuję, z wyżej wymienionego powodu. Eclipse powinien kolejny raz się ponownie uruchomić


    Zmiana AVRDude na nową wersję
    Tutaj należy wymienić wersję AVRDude na nową, domyślnie w z toolchainem jest instalowana wersja 5.10 albo 5.11, która
    nie wspiera wielu nowych ATXMeg, w tym mojej, na której będzie bazował poradnik ;) Wspomnę tylko jeszcze, że AVRDude
    jest kompilowane przeze mnie, bo domyślnie wersja 6.11 nie wspiera mojego programatora MkII i nawet odczytanie sygnatury
    nie było możliwe. W tym miejscu chciałbym podziękować użytkownikom Lemurek, Foreste i SunRiver oczywiście :D, którzy
    bardzo pomogli mi w kompilacji mojego AVRDude ;) Tutaj link do pobrania :

    AVRDude 6.11

    Teraz wchodzimy w miejsce, gdzie mamy zainstalowany nowy toolchain. Domyślnie jest to C:\ProgramFiles (x86)\Atmel\AVR Tools\AVR Toolchain\bin
    I należy tam wgrać (zamienić) 3 pliki z paczki, mianowicie :
    avrdude.exe
    avrdude.conf
    pthreadGC2.dll

    Pozostaje jeszcze tylko przestawić ścieżki w pluginie AVR w Eclipse na poprawne :)
    Obrazek

    Należy zmienić tylko 4 pierwsze ścieżki, Atmel Part Description Files może pozostać niezmieniony ;) W moim przypadku wygląda to tak :
    Obrazek

    No i w zasadzie przygotowanie środowiska mamy już za sobą, więc pozostaje tylko sprawdzić działanie kompilatora.
    W takim razie tworzymy nowy projekt :) W zasadzie nie ma tu żadnej filozofii, ale na wszelki wypadek dam screeny jak należy to zrobić :P

    Obrazek

    Obrazek

    Tutaj TRZEBA odznaczyć Debug
    Obrazek

    Przed jakąkolwiek kompilacją należy wejść w ustawienia projektu
    Obrazek

    Teraz musimy zmienić programator i procesor na który zostanie skompilowany program, klikamy Apply :
    Obrazek

    Przechodzimy do zakładki Target Hardware, klikamy Load From MCU i jeżeli wszystko jest ok, procek powinien sam się wczytać ;)
    Obrazek

    Po poprawnym wczytaniu pozostanie nam ustawienie odpowiedniej częstotliwości i to by było na tyle ;) Klikamy OK
    Obrazek

    Tworzymy nowy plik main.c, wrzucamy prosty program :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    I klikamy rozpoczęcie kompilacji. Program powinien się zacząć bezbłędnie kompilować.
    Obrazek

    I wgrać program do procesora
    Obrazek

    I to by było na tyle ;) I prosiłbym o opinie czy podoba się mój styl pisania poradników ;)

    CDN !


    Wszystkie uwagi i komentarze proszę pisać w tym temacie.

    _________________
    sig off ;(



    Ostatnio edytowano 20 lip 2014, o 00:39 przez PawelGaj, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 lip 2014, o 21:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Porty I/O
    Pierwsza, a w zasadzie druga część tego poradnika będzie dotyczyć portów IO Xmegi. Czyli krótko
    o tym jak ustawić kierunki, stan i odczytać stan który jest na porcie.

    Porty IO w Xmegach są trochę ulepszone w porównaniu do jej strarszej siostry. Mam tu na myśli
    dodanie rezystora PullDown, którego nie uświadczymy w Atmegach. Kolejnym usprawnieniem jest
    multiplekser, który pozwala generować przerwania z dowolnego pinu, ustawionego wcześniej w
    programie. Każdy port posiada dwa „kanały” przerwań pod które można podpiąć jeden pin z portu,
    które mogą reagować na cztery rózne zbocza. Uogólniając, możemy sobie wybrać dwa dowolne
    piny z portu, które mogą generować osobne przerwania, ale ten temat poruszymy w części o
    przerwaniach ;). Jest jeszcze wiele innych ciekawych funkcji portów, ale na razie zostawię ten
    temat na później :).

    Przejdźmy więc do omówienia sposobu zapisywania danych do struktury. Mamy sobie klika struktur (jedna dla każdego portu), które
    opisują porty. Struktura wygląda następująco :
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Może na pierwszy rzut oka struktura wygląda na strasznie zaawansowaną, jednak do podstawowych
    operacji na portach I/O będziemy używać dosłownie kilku zmiennych, ale o tym zaraz.

    Zmienna DIR odpowiada za kierunek na pinie, czyli bit ustawiony to wyjście, bit wyzerowany to wejście.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Taką instrukcją ustawiliśmy PA0 jako wyjście. Prawda, że proste i przejrzyste ? Może zastanawiać
    zapis PIN0_bm, ale to tylko definicja, która zostanie rozwinięta przez kompilator do (1<<0). Do każdego
    portu są dwie podobne definicje, jedna z końcówką _bm (Bit Mask) a druga z końcówką _bp (Bit Position).
    W czym różnica ? W tym, że ta druga definicja to tylko numer pinu, czyli w przypadku PIN0_bp zostanie to
    rozwinięte przez kompilator do postaci 0. Oczywiście taka definicja może się przydać do ustawienia czy
    wyzerowania pinu, ale sposób będzie się trochę różnił. W przypadku końcówki _bp będziemy robić to tak :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Czyli po prostu jak w Atmegach. W Xmegach występuje jeszcze jedna końcówka, mianowicie _gc (Group Configuration),
    która odpowiada za konfigurację wielu bitów na raz. Dobrym przykładem może tutaj być konfiguracja rezystorów
    pullup i pulldown, które zapobiegają stanom nieustalonym przy konfiguracji pinu jako wejście, ale o tym za chwilkę :P

    Przejdźmy teraz do omówienia kolejnych rejestrów odpowiedzialnych za piny I/O ;)

    Następnymi trzema zmiennymi są zmienne DIRSET, DIRCLR i DIRTGL. Poruszam ich kwestię w jednym akapicie,
    gdyż niejako są one ze sobą powiązane ;) Mianowicie, pierwsza zmienna odpowiada za ustawienie bitów które,
    się w niej znajdują na jedynki w rejestrze DIR, a druga analogicznie odpowiada za wyzerowanie bitów w rejestrze DIR.
    Trzecia zmienna odpowiada za zmianę bitu na przeciwny. Czyli jak będzie 1, to po zmianie będzie 0 i analogicznie w
    drugą stronę, jak będzie 0 to po zmianie będzie 1. Jak wygląda to w praktyce ? A tak :P :

    DIRCLR :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    DIRSET :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    DIRTGL :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Prawda, że proste ? :)


    Następnym rejestrem jest OUT. Czyli po prostu to, co znajduje się fizycznie na porcie (oczywiście po uprzednim
    ustawieniu go jako wyjście ;) )Rejestr ten również posiada 3 swoje „pochodne” rejestry do czyszczenia,
    ustawienia i zmiany stanu bitu. Są to OUTCLR, OUTSET, OUTTGL. Tutaj już nie będę poruszał kwestii tego,
    jak zapisywać dane do tych rejestrów, bo to zostało już opisane w akapicie o rejestrze kierunku :)


    Przejdźmy teraz do rejestru IN. Znajduje się tam to, co również jest fizycznie na porcie, ale jeżeli ustawimy go
    wcześniej jako wejście ;) Tutaj poruszymy kwestię tego, jak włączać rezystory podciągające do zasilania (pull-up)
    i do masy (pull-down), i kwestie ośmiu rejestrów, w których to będziemy odpowiednimi bitami włączać wyżej
    wymienione rezystory i nie tylko ;). Rejestr ten nie posiada trzech „pochodnych” rejestrów (logiczne :P). Przejdźmy
    do tego, jak włączać te rezystory.

    Poniższy kod przedstawia włączenie rezystora pullup na pinie 0
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    I to by było na tyle. Warto przypomnieć o trzeciej końcówce _gc, która tutaj znalazła zastosowanie. O tym dlaczego, po co i czemu odsyłam do datasheeta :P.

    Analogicznie ustawiamy pulldown ;)

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Odczytanie stanu wygląda podobnie jak w Atmegach, tyle że różni się ono tym, czy włączony jest PullUp, czy PullDown

    Dla pullup będzie to wyglądać tak :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A dla pulldown tak :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jest jeszcze jedna możliwość, czyli bez włączania rezystorów podciągających, ale pod pin musi być coś podłączone
    aby zapobiegać stanom nieustalonym, przez które pin i kod może wariować :P


    Na dzisiaj koniec, w następnej części będzie o timerach ;)


    Wszystkie uwagi i komentarze proszę pisać w tym temacie.

    _________________
    sig off ;(



    Ostatnio edytowano 20 lip 2014, o 00:38 przez PawelGaj, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lip 2014, o 21:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Siemka, dzisiaj zajmiemy się timerami i przerwaniami. Na początku myślałem, że opiszę tylko timery, jednak
    timery są niejako powiązane z przewianiami i zdecydowałem, że lepiej będzie jak z konieczności trochę
    wtrącę w tej części przerwań;) Dodam tylko, że wszystkie próby z timerami nie będę przedstawiał na
    HD44780 czy na terminalu, tylko przystępnie na GLCD ILI9341 2,2” ;)

    Teraz może pokrótce omówię co oferują timery w nowych procesorach. Warto wspomnieć, że w porównaniu
    do Atmeg, wszystkie timery w Xmegach są 16bitowe i mają te same rejestry konfiguracyjne – ukłon w stronę
    osób, które pracują na kilku wersjach procesorów z tej samej rodziny, ale o tym było we wstępie ;) Timery
    można połączyć z systemem zdarzeń, przez co można połączyć 4 timery 16bitowe w jeden, 64bitowy, albo
    podzielić jeden timer 16bitowy na dwa timery 8bitowe, ale o tym będzie w późniejszej części cyklu. Dzięki
    temu możliwe jest uzyskanie 14, niezależnych timerów 8bitowych (A3U). Timery posiadają dodatki, które
    pozwalają rozszerzyć rozdzielczość PWM. Oferują możliwość współpracy z DMA. Timery te mają kilka rejestrów,
    które odpowiadają za jego pracę. Najważniejsze z nich opiszę poniżej :

    CNT – zmienna przechowująca aktualną wartość timera.

    CCx – rejestr do funkcji Capture/Compare (przechwycenia i porównania).

    - Porównanie między innymi wykorzystuje się do generowania PWM. Rejestr CNT jest cały czas porównywany z
    rejestrem CCx i jeżeli nastąpi zrównanie, następuje zmiana stanu logicznego na pinie OCx zgodnie z ustawieniami
    timera, więcej o tym będzie w podrozdziale o PWM ;).

    - Przechwycenie z kolei działa odwrotnie, po zmianie stanu na pinie OCx następuje przepisanie wartości CNT do
    rejestru CCx pod warunkiem wystąpienia określonego zbocza. Czyli upraszczając, jeżeli w rejestrze CNT jest wartość
    15000 i w tym momencie nastapi „określone zbocze”, wartość ta zostanie skopiowana do rejestru CCx. Zostanie to
    dokładniej omówione w podrozdziale o przechwytywaniu.

    PER – rejestr, w którym przechowana jest maksymalna wartość którą timer może osiągnąć. Przykładowo, jeżeli PER = 1000,
    przepełnienie timera nastąpi co 1001 cykli. W momencie kiedy w rejestrze konfiguracyjnym zmieniony jest kierunek liczenia,
    zmienna ta określa od jakiej wartości timer będzie liczył do zera.

    CTRLx – rejestry konfiguracyjne.

    INTCTRL – rejestry konfigurujące przerwania.

    1. Praca normalna z przerwaniami

    W tym podrozdziale omówimy sobie jak skonfigurować timer, żeby przykładowo zwracał przerwanie co 1s. Program wykorzystany
    do obliczenia wartości porównania timera to „rodzimy” MkAVRCalculator ;) Tak więc do celu. Zerknijmy więc do noty jak mamy
    skonfigurować timer do normalnej pracy, jak skonfigurować przerwanie, a na końcu będzie filmik przedstawiający pracę kodu ;)
    Obrazek

    Jak widać z powyższej tabelki, musimy ustawić timer w tryb NORMAL. Proszę zwrócić uwagę na nazwę kolumny, mianowicie
    Group Configuration. Kojarzycie ? ;) Tak, to to, o czym wspominałem w poprzedniej części poradnika :P Więc na podstawie
    tabeli skonfigurujmy timer w programie ;)
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    I to wszystko, pozostaje jeszcze ustawić preskaler, ale żeby to zrobić, musimy wyliczyć wartość timera i preskaler. A
    zrobimy to za pomocą MkAVRCalculator ;) W tym momencie również dodam, że wszystkie ATXMegi po uruchomieniu są
    taktowane z wewnętrznego oscylatora 2MHz, więc na taką też częstotliwość będziemy wyliczać timer i preskaler.
    Obrazek

    Jak widać z powyższego zrzutu, żeby uzyskać w „bezbłędne” 1000ms, musimy ustawić preskaler na 64, a do rejestru
    PER musimy wpisać wartość 31249. Nie zapominajmy, że mamy rejestry 16 bitowe, więc wartość taka nie jest żadnym
    problemem ;)
    Obrazek

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




    Teraz zrobimy mały przerywnik związany z koniecznością skonfigurowania przerwania ;)
    Aby przerwanie mogło się prawidłowo odbyć, musimy zrobić 3 kroki

    1.Ustawić w rejestrze INTCTRLA bit odpowiadający za przerwanie i jego piorytet. Aby to zrobić, musimy znaleźć rejestr,
    który jest odpowiedzialny za przerwanie od przepełnienia. Znajduje się on tu :
    Obrazek
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    2.Musimy zezwolić na przerwania wybranego poziomu, włączyć kontroler przerwań i zezwolić na globalne przerwania
    (funkcja sei). Przykładowo, jeżeli wybierzemy poziom przerwań od timera LO, czyli najniższy, musimy odblokować
    przerwania z piorytetu LO. Jeżeli wybierzemy MED, czyli średni, musimy analogicznie odblokować przerwania MED.
    Jaka jest różnica między nimi ? Przerwanie wysokiego piorytetu nie może przerwać żadne inne przerwanie (no, jest
    jeden wyjątek, ale o tym dokładniej opowiem w części o przerwaniach), przerwanie MED może zostać przerwane
    przez przerwanie o priorytecie HI, a przerwanie LO może zostać przerwane przez przerwania o priorytecie HI oraz
    MED. My dla naszego timera wybierzemy przerwanie średniego piorytetu ;)
    Obrazek
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    3. Musimy napisać obsługę przerwania, czyli po prostu ISR ;)

    Więc cały kod prezentuje się następująco :
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Efekt jest taki, że kwadrat na wyświetlaczu co sekundę zmienia swój kolor z zielonego na czerwony i z
    czerwonego na zielony. Tutaj filmik przedstawiający zachowanie tego kodu :)



    I to na dzisiaj tyle, w najbliższym czasie opiszę PWM z przechwytywanie i porówaniem :)

    Wszystkie uwagi i komentarze proszę pisać w tym temacie.

    _________________
    sig off ;(



    Ostatnio edytowano 20 lip 2014, o 00:38 przez PawelGaj, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sie 2014, o 12:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Siemka, na początku chciałem przeprosić za to, że ostatnio nie pojawiła się żadna część kursu, ale są wakacje i mam sporo roboty typowo fizycznej, a po pracy nie mam zbytnio chęci na jakiekolwiek myślenie. Wraz z końcem mojej pracy (jakoś przed końcem wakacji), powinny zacząć się pojawiać kolejne części kursu :) Dzięki za zrozumienie ;)

    Wysłane z mojego Nexusa 5 przy użyciu Tapatalka ;)

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sie 2014, o 21:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2011
    Posty: 401
    Lokalizacja: Siedlce
    Pomógł: 7

    Gdyby tak ktoś mógł zrobić taki poradnik na <herezja> PICe </herezja>...

    _________________
    Czekamy na RedBook'a!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 wrz 2014, o 12:56 
    Offline
    Użytkownik

    Dołączył(a): 30 sie 2014
    Posty: 170
    Pomógł: 2

    Świetnie, czekam na więcej ! Mogłeś powiedzieć więcej o uC z usb bo do nich nie potrzeba dodatkowego programatora :) Albo mogłeś wspomnieć o przeróbce usbasp na programator PDI :D

    Czekam na więcej!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 paź 2014, o 18:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 gru 2013
    Posty: 185
    Pomógł: 6

    Witam.
    Chciałbym poinformować że nie działa link do plugin-a :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 paź 2014, o 20:17 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    rajmund96 napisał(a):
    Chciałbym poinformować że nie działa link do plugin-a

    To nie jest link do klikania. Należy go skopiować jak na pokazanym obrazku po wybraniu w Eclipse Help->Instal New Software.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 lis 2014, o 22:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 gru 2013
    Posty: 185
    Pomógł: 6

    Krauser napisał(a):
    rajmund96 napisał(a):
    Chciałbym poinformować że nie działa link do plugin-a

    To nie jest link do klikania. Należy go skopiować jak na pokazanym obrazku po wybraniu w Eclipse Help->Instal New Software.

    Aaaa dobrze wiedzieć :D , ale poradziłem sobie instalując plugina z innego miejsca :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lis 2014, o 18:33 
    Offline
    Użytkownik

    Dołączył(a): 01 paź 2013
    Posty: 305
    Lokalizacja: Olsztyn
    Zbananowany użytkownik

    Pomógł: 20

    Witam
    rajmund masz linka , do tego innego miejsca



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lis 2014, o 20:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 gru 2013
    Posty: 185
    Pomógł: 6

    giciors napisał(a):
    Witam
    rajmund masz linka , do tego innego miejsca

    Tak. proszę bardzo http://forum.atnel.pl/post75618.html#p75618



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lis 2014, o 21:25 
    Offline
    Użytkownik

    Dołączył(a): 01 paź 2013
    Posty: 305
    Lokalizacja: Olsztyn
    Zbananowany użytkownik

    Pomógł: 20

    Witam
    I bardzo dzięki



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 gru 2014, o 18:21 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Witam po długiej przerwie. Niestety z tymczasowych powodów prywatnych nie jestem w stanie dalej prowadzić tego "kursu". Może ktoś to dalej pociągnie, mi pozostaje tylko przeprosić.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 gru 2014, o 20:12 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2012
    Posty: 712
    Lokalizacja: Opole
    Pomógł: 23

    oj wielka szkoda, właśnie zakupiłem jedną Xmege i nie ukrywam że poradniki kolegi bardzo mi podpasowały :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 mar 2019, o 00:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Fajnie, że ktoś zrobił chociaż wstęp do Xmega :) Szkoda, że nie ma kontynuacji, bo ja powoli się wgryzam i utknąłem na TWI w Xmega.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO