Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

XMega - Enkoder obrotowy, proszę o pomoc w napisaniu kodu

m72 20 Gru 2016 19:47 1077 20
  • #1 20 Gru 2016 19:47
    m72
    Poziom 12  

    Panowie, sprawa wygląda tak.

    Tu jest programik na sprzętową obsługę enkodera obrotowego.

    Kod: c
    Zaloguj się, aby zobaczyć kod



    A nie da się tak zrobić żeby nie trzeba było ciągle sprawdzać stanu rejestru tylko żeby zmiana wartości w rejestrze wywoływała jakieś przerwanie a następnie skok do funkcji odczytującej jego stan ?

    Poza tym co jest nie tak z powyższym kodem. Żywcem skopiowany ze strony (z pominięciem obsługi LCD) nie kompiluje się.
    XMega - Enkoder obrotowy, proszę o pomoc w napisaniu kodu

    0 20
  • #2 20 Gru 2016 20:21
    michalko12
    Specjalista - Mikrokontrolery

    m72 napisał:

    Poza tym co jest nie tak z powyższym kodem. Żywcem skopiowany ze strony (z pominięciem obsługi LCD) się nie kompiluje.

    Znając życie to kod pisany na nie tą rodzinę XMEGA. Nawet nie podałeś na czym pracujesz.

    0
  • #3 20 Gru 2016 20:31
    m72
    Poziom 12  

    Atmel studio7, chodzi o to że na jaką xmegę bym nie przestawił to i tak się nie kompiluje.
    Nie wiem czy przypadkiem nie jest to problem z Atmel Studiem. Kiedyś coś miałem ze ścieżką dostępu, jakieś polskie znaki czy za długa była. Nie pamiętam. Męczyłem się kilka dni a okazało się że wystarczyło projekt zapisać na dysku C i wszystko zadziałało. Teraz nie pomaga.

    Moderowany przez tmf:

    Skasowałem część postu.
    3.1.9. Nie ironizuj i nie bądź złośliwy w stosunku do drugiej strony dyskusji.




    Może niech ktoś wklei ten kod u siebie i mi powie czy się kompiluje. Jeśli tak to będę wiedział przynajmniej że mam coś nawalone z kompem.

    0
  • #4 20 Gru 2016 20:44
    373522
    Użytkownik usunął konto  
  • #5 20 Gru 2016 21:21
    m72
    Poziom 12  

    No właśnie u mnie się to nie kompiluje (cały projekt ze strony).
    XMega - Enkoder obrotowy, proszę o pomoc w napisaniu kodu
    Nie wiem jak to się fachowo nazywa ten nowy sposób ustawiania bitów czy grup bitowych ale chodzi mi to co zakreśliłem na czerwono. To mi czasami nie działa.
    Wystarczy że zamiast tych durnowanych nazw ustawię bity po staremu i wtedy odpala.
    Domyślam się że to jednak awaria kompilatora, tylko jak to naprawić ?
    ps. jakby co AS po apgrejdzie świeżutkim, nie pomogło.

    Moderowany przez tmf:

    Usunąłem treści niezwiązane z tematem.



    Dodano po 26 [minuty]:

    No ale wracając do sedna, jak to jest z tymi przerwaniami.
    Jak wygenerować przerwanie w momencie dowolnej zmiany w rejestrze enkodera ?

    0
  • #6 21 Gru 2016 10:09
    www
    Poziom 14  

    A gdzie masz zdefiniowane zmienne/stałe, które zakreśliłeś na czerwono?
    Kompilator ich nie widzi i daje stosowny komunikat.

    0
  • #8 21 Gru 2016 10:41
    m72
    Poziom 12  

    www - wiesz o czym piszesz ?

    1
  • #9 21 Gru 2016 12:19
    m72
    Poziom 12  

    Z tego co mi wiadomo to co zaznaczyłem na czerwono to nie żadne zmienne tylko "uproszczenie" ustawiania bitów w rejestrze i tego nie trzeba nigdzie definiować.
    Link
    To jest zdefiniowane w kompilatorze. No chyba że w danym procku nie istnieje taki rejestr to wywala błędy, ale u mnie dla żadnego procka do nie działa.

    Poza tym co najważniejsze. Skoro odpalam żywcem ściągnięty ze strony gotowy projekt i on tylko mi nie odpala to wniosek nasuwa się sam. Mam coś nawalone z kompilatorem. No chyba że ktoś twierdzi inaczej to niech wskaże błąd który popełnił autor kodu (nie ja!).
    Jeśli ktoś wie na czym polega błąd to niech napisze a jeśli nie wie to niech nie zaśmieca forum.

    0
  • #10 21 Gru 2016 13:16
    www
    Poziom 14  

    m72 napisał:
    Z tego co mi wiadomo to co zaznaczyłem na czerwono to nie żadne zmienne tylko "uproszczenie" ustawiania bitów w rejestrze i tego nie trzeba nigdzie definiować. To jest zdefiniowane w kompilatorze.

    Ok, więc pokaz gdzie to "uproszczenie" jest u Ciebie zdefiniowane.

    m72 napisał:
    No chyba że w danym procku nie istnieje taki rejestr to wywala błędy, ale u mnie dla żadnego procka do nie działa.

    I nie nasuwa Ci to żadnych skojarzeń?

    m72 napisał:
    Poza tym co najważniejsze. Skoro odpalam żywcem ściągnięty ze strony gotowy projekt i on tylko mi nie odpala to wniosek nasuwa się sam. Mam coś nawalone z kompilatorem. No chyba że ktoś twierdzi inaczej to niech wskaże błąd który popełnił autor kodu (nie ja!).

    Skoro projekt nie działa tylko u Ciebie to znaczy że sam popełniłeś jakiś błąd, nie autor projektu.

    m72 napisał:
    Jeśli ktoś wie na czym polega błąd to niech napisze a jeśli nie wie to niech nie zaśmieca forum.

    Próbujemy Ci pomóc ale dobrze będzie jeśli zechcesz współpracować.

    0
  • #11 21 Gru 2016 13:35
    373522
    Użytkownik usunął konto  
  • #12 21 Gru 2016 13:57
    m72
    Poziom 12  

    <ciach>

    Moderowany:

    Sugeruję by kolega powstrzymał się od tego typu komentarzy, a w razie potrzeby używał systemu raportów.



    Dodano po 1 [minuty]:

    niveasoft napisał:
    Kiedy otworzyłem projekt to Studio zapytało czy przekonwertować projekt do wersji 7 bo to było pisane na 6.1 z dopiskiem "zalecane"
    Pozwoliłeś mu na taki import?


    Tak oczywiście.
    Póki co dalej podejrzewam błąd w oprogramowaniu. Raz juz miałem takie coś i pomogło skrócenie ścieżki dostępu. Teraz nie pomaga.

    0
  • #13 21 Gru 2016 14:13
    pawel_mr
    Poziom 14  

    Ja bym się przyjrzał pierwszemu błędowi na liście "recipe for..." bo wg mnie coś jest nie tak z makefile. Nie da się w AS uruchomić czegoś na zwór Eclipsowych rozwiązań w stylu "Wyczyść projekt"?

    0
  • Pomocny post
    #14 21 Gru 2016 14:34
    373522
    Użytkownik usunął konto  
  • #15 21 Gru 2016 14:53
    m72
    Poziom 12  

    Jest coraz bliżej rozwiązania problemów tylko potrzeba jakiegoś magika.
    Otóż.
    W drzewie po prawej, w zależnościach jest plik w którym są definicje tych "uproszeczń" konfiguracji bitów. I tak np dla

    Kod: c
    Zaloguj się, aby zobaczyć kod

    definicja jest
    XMega - Enkoder obrotowy, proszę o pomoc w napisaniu kodu

    A dla
    Kod: c
    Zaloguj się, aby zobaczyć kod

    nie ma.

    Pewnie stąd te błędy. Ale dla czego nie ma tych definicji ?

    0
  • #16 21 Gru 2016 15:12
    pawel_mr
    Poziom 14  

    m72 napisał:

    A dla
    Kod: c
    Zaloguj się, aby zobaczyć kod

    nie ma.

    Pewnie stąd te błędy. Ale dla czego nie ma tych definicji ?

    W pierwszym zrzucie ekranu masz wybrany procesor 128A1U, a plik otwierasz dla 128A3U. Nie wiem czym te procesory się różnią ale może mają różne rejestry w tej części i dlatego nie ma ich definicji? Swoją drogą nagłówek powinien odpowiadać procesorowi wybranemu w ustawieniach.

    [edit]
    Mój błąd, popatrzyłem na pierwszy zrzut ekranu, na kolejnym jest już to samo, czyli to raczej nie to.

    0
  • Pomocny post
    #17 21 Gru 2016 15:17
    373522
    Użytkownik usunął konto  
  • #18 21 Gru 2016 15:28
    m72
    Poziom 12  

    Sprawa rozwiązana.
    Nie mam pojęcia czemu ale u mnie te nazwy do ustawiania bitów są trochę inne.
    Przykładowo nie tak jak w kodzie ze strony
    TC_CLKSEL_EVCH0_gc;
    tylko
    TC_TC0_CLKSEL_EVCH0_gc; itd.
    Nastąpiła jakaś zmiana nazewnictwa ?
    Z czego to wynika?
    Czemu tylko u mnie ! :D

    0
  • #19 21 Gru 2016 17:49
    tmf
    Moderator Mikrokontrolery Projektowanie

    niveasoft napisał:

    Mi już tam nie zależy żeby coś hejtować albo chwalić. Piszę jak jest.
    Kiedyś chciałem uaktualnić Studio do najnowszego i ...klops
    W nowym instalatorze dołożyli sprawdzanie Windows Update - ja to rozumiem bo tam doszły jakieś zabezpieczenia - teraz nie pamiętam i musi się to wzajemnie obsługiwać.
    Niestety ten szumny instalator Studia nie potrafi tego poprawnie sprawdzić. Pisze że powinienem zainstalować aktualizację KB..cośtam.
    Sprawdzam ręcznie w systemie - mam zainstalowaną.
    Przechodzę na stronę Microsoftu i próbuję zainstalować mimo to - odpowiedź - "Already installed"
    No i tak by to w kółko było.

    Zostawiłem to (a swoje sobie pomyślałem, ale tutaj nie przytoczę) bo pomyślałem sobie że może to naprawią więc się nie będę z tym szarpał.
    Sami sobie plują w brodę z takim softem bo chyba nikt nie oczekuje że ktoś będzie formatował komputer pod uaktualnienie.


    A wystarczy poczytać:
    http://atmel.force.com/support/articles/en_US...on-availability-of-KB3033929-in-Windows-7-x64
    I problem magicznie rozwiązany :)

    0
  • #20 21 Gru 2016 18:31
    373522
    Użytkownik usunął konto  
  • #21 21 Gru 2016 19:59
    tmf
    Moderator Mikrokontrolery Projektowanie

    niveasoft napisał:
    Dzięki za info. Przetestuję przy okazji.
    Ciekawe kiedy to zamieścili bo sprawdzałem Googlami pod kątem tego zagadnienia i wtedy ~jakiś miesiąc temu jeszcze nic takiego się nie pokazało.
    Dlatego pomyślałem, że przeczekam zamiast się z tym szarpać no i chyba to była dobra decyzja :D


    Rozwiązanie pojawiło się parę godzin po wypuszczeniu nowej wersji, tyle, że na AVRFreaks. Ale nie ma się co śpieszyć z nowszą wersją, tym bardziej, że niewiele wnosi nowego.

    0