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



Teraz jest 29 mar 2024, o 14:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 23 sie 2017, o 16:32 
Offline
Nowy

Dołączył(a): 29 paź 2015
Posty: 6
Pomógł: 0

Na wstępie witam wszystkich użytkowników forum.
Chciałbym się zapytać dlaczego Eclipse może nie rozpoznawać niektórych podstawowych makr. Piszę "niektórych" ponieważ z makrami typu DDRB DDRC itp. nie ma problemów. Problemy pojawiają się tak jak na screenie poniżej:

Obrazek

Będę wdzięczny za każdą wskazówkę.
Pozdrawiam serdecznie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sie 2017, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Spróbuj zmienić procka w ustawieniach projektu, zatwierdzić, następnie wybrać ponownie właściwy uC i zatwierdzić.
Osobiście zauważyłem jedną przypadłość w Eclipse. Gdy utworzymy nowy projekt i podczas jego tworzenia wybierzemy procesor i wklepiemy taktowanie, następnie utworzymy plik main.c i od razu wkleimy większy kawałek kodu to po kompilacji wywala błędy tak jak na Twoim screenie. Jak z ctrl klikniesz na zainkludowanym pliku io.h po jego otwarciu okazuje się że włączone są sekcje dla innego uC. Wtedy właśnie pomaga zmiana procka na inny dowolny, a następnie przywrócenie właściwego i ponowna kompilacja. Bynajmniej u mnie tak to działa.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sie 2017, o 20:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

indexy można odświeżyć w eclipse - jest taka opcja "index/Freshen all files" w menu projektu

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 01:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

mirekk36 napisał(a):
indexy można odświeżyć w eclipse - jest taka opcja "index/Freshen all files" w menu projektu

Warto zatrzymać się tutaj i spróbować wyjaśnić pewien mechanizm w Eclipse, który Koledzy powyżej zdefiniowali w postaci problemu i jego, jednak dość nieudolnego aczkolwiek skutecznego, sposobu rozwiązania.
Sam nie jestem jakimś specjalistą w tej dziedzinie, ale po długiej już pracy z Eclipse, niektóre sprawy wyklarowały się.
Cóż to za mechanizm? Jak Mirek już napisał chodzi "indeksowanie".
Jak ja to rozumiem? W Eclipse (a pewnie i w innych IDE, choć właściwie tylko tego używam :) ) analiza kodu wprowadzanego jest kilku poziomowe - na poziomie IDE, są podkreślenia błędów składni, kolejne ot właśnie indeksy (odnośniki - tak bym to inaczej nazwał). Już na tym poziomie, jeszcze przed kompilacją i linkowaniem sprawdzana jest poprawność kodu, można by powiedzieć, że w "czasie rzeczywistym" i tworzona jest, jakby to powiedzieć, mapa działań użytkownika. Niesamowicie pomaga to w kodowaniu (przynajmniej mnie), choć czasami mam wrażenie, że strasznie rozleniwia i ogłupia, ale ostatecznym rozrachunku jest bardzo pomocne i użytkownik korzysta coś jakby z mechanizmu WYSYWIG (https://pl.wikipedia.org/wiki/WYSIWYG) - tak to mi się widzi :)

Kolejne poziomy to właśnie kompilacja i linkowanie, każde z tych poziomów ma charakterystyczne "kolorowania".
Błędy z indeksami są takie bardziej różowo - pomarańczowe, błędy składni są pomarańczowe, błędy kompilatora czerwone, a błędy linkera - bezbarwne :)
Ciekawe, czy ktoś z Was wie o co mi chodzi :)
Gdy wreszcie w ten dość naiwny sposób, uporządkowałem sobie zachowanie Eclipse, walnęło mnie "japko" Newtona i niesamowicie lepiej zacząłem poruszać się podczas szukania błędów w kodzie, komunikaty stały się zdecydowanie bardziej zrozumiałe :)

Niestety, mam wrażenie, że ten mechanizm czasami "zacina się", albo przez błędy w kodzie IDE albo przez samego użytkownika, który bardzo często (tak jak ja :) jest zwykłym samoukiem, bez przeszkolenia, który działa czasami inaczej niż autorzy programu by sobie życzyli :)
Bardzo często w takim wypadku można spotkać się z poradami o konieczności ponownego importu projektów do Workspace.
Ja już od dawna tak nie robię, bo nie ma potrzeby. W Eclipse w menu projektu jest bardzo pomocne podmenu związane właśnie z indeksowaniem:
Obrazek

Jeśli mam kłopot z "różowo - pomarańczowymi" błędami to korzystam właśnie z tego menu, zwykle pomaga "Freshen all files" a potem "Rebuild".
Czasami muszę skorzystać z "Update with modified files"
Błędy z indeksowaniem pojawiają się u mnie zwykle, gdy w projekcie zamienię nazwy kilku plików, gdy inne wykasuję itp. Czasami nie wiem z jakiego powodu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 03:23 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Zealota napisał(a):
Błędy z indeksowaniem pojawiają się u mnie zwykle, gdy w projekcie zamienię nazwy kilku plików, gdy inne wykasuję itp. Czasami nie wiem z jakiego powodu

Ja wtedy zakładam na chwilę nowy workspace, importuję do niego ten "ala uszkodzony projekt", usuwam wtedy ten "ala uszkodzony" i .... no i importuję z powrotem z nowego workspace ... zwykle to pomaga od razu

a gdy coś się w całym workspace uszkodzi to nie ma NAJMNIEJSZEGO problemu aby stworzyć nowy workspace i zaimportować hurtem wszystkie projekty ze starego workspace. Trwa to chwilę a wszystko śmiga jak nowe.

Nie mniej jednak - na początku robię porządek z indeksowaniem jak kolega opisał - bo ja już tylko skrótowo z uwagi na fakt, że nie tylko w poradniku wideo ale i na forum często pokazywałem też na obrazkach jak to zrobić

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 06:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Zealota napisał(a):
jednak dość nieudolnego aczkolwiek skutecznego, sposobu rozwiązania
Skoro działa to raczej trudno tu mówić o "nieudolnym" więc pisanie w jednym zdaniu "nieudolne" i "skuteczne" trochę się gryzie.
Poza tym przed chwilą zasymulowałem problem: utworzyłem nowy projekt w którym wybrałem procesor attiny13 i wklepałem z palca zegar 4800000; następnie od razu założyłem plik main.c i po jego otwarciu wkleiłem wcześniej skopiowany kod liczący 51 linii gdzie jest użyta nazwa specyficzna dla tego procka "EEPE". Po kompilacji wywala błąd właśnie na tej nazwie.
Trzymając "Ctrl" Klikam myszą na linijce
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
otwiera się plik io.h w którym są włączone sekcje dla procka atmega16! :shock:
ObrazekObrazek
Nie pomaga żadna opcja zawarta w podmenu Index, nie pomaga również "Clean and build project", nie pomaga wejście we właściwości projektu i "Target Hardware" i Apply.
Pomaga dopiero wejście we właściwości projektu i "Target Hardware" wybranie innego procka np attiny13A ->Apply, wybranie attiny13 -> Apply.
Powyższe sprawdzane na Eclipse Luna. Swego czasu walczyłem właśnie z tym problemem nie wiedząc co jest przyczyną i naprowadziło mnie to co ujrzałem w pliku io.h. Niestety sposób który wypracowałem na tę bolączkę jest jedynym który udało mi się znaleźć (ale i też za bardzo dalej nie szukałem po odkryciu powyższego).
Też jestem samoukiem i często problematyczny temat drążę do upadłego i nawet jak znajdę rozwiązania pośrednie to później napotkane inne rozwiązania podsunięte przez innych staram się testować.
Tak więc z całym szacunkiem kolego @Zealota ale zanim nazwiesz czyjeś rozwiązania "nieudolnymi" najpierw upewnij się, że Twoja propozycja rozwiązania zadziała w każdym przypadku!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 08:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

xentis napisał(a):
Zealota napisał(a):
jednak dość nieudolnego aczkolwiek skutecznego, sposobu rozwiązania
Skoro działa to raczej trudno tu mówić o "nieudolnym" więc pisanie w jednym zdaniu "nieudolne" i "skuteczne" trochę się gryzie.
Tak więc z całym szacunkiem kolego @Zealota ale zanim nazwiesz czyjeś rozwiązania "nieudolnymi" najpierw upewnij się, że Twoja propozycja rozwiązania zadziała w każdym przypadku!


Przepraszam bardzo jeśli kogokolwiek uraziłem wpisem.
Niestety zrobiłem za duży skrót myślowy, a "nieudolny" to miało być określenie bardziej w kierunku Eclipse (również z całym szacunkiem do tego środowiska :)
W mojej ocenie tego typu działanie, gdzie w zdefiniowanym już projekcie, np za pomocą szablonu, po edycji kodu trzeba dokonywać "kombinacji alpejskich" poprzez zmianę procka na inny, a potem z powrotem itp. czy też potrzeba importowania całych workspaców to są wytrychy, które omijają błędy środowiska. No chyba, że brakuje mi wiedzy żeby to poprawnie ocenić, czego nie wykluczam. To tyle tytułem "nieudolnych" tłumaczeń :)

Również i ja dokonałem symulacji, o której Kolega pisze z prockiem Attiny13 i sytuacja powtórzyła się co do joty.
Ciekawe w tym jest zachowanie pliku io.h. Ewidentnie widać, że w momencie wystąpienia problemu jest kłopot właśnie chyba z indeksowaniem (tak zarazem naszła mnie refleksja, że indeksowanie służy m.in do "wyszarzania" składni preprocesora) co objawia się tym, że wpis:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


nie ma poprawnie zaincludowanego <avr/iotn13.h> (przynajmniej dla IDE) w momencie utworzenia projektu, widać złe podświetlanie związane z preprocesorem, stąd późniejsze błędne indeksowania i różowo-pomarańczowe błędy.
Kombinacja ze zmianą procesora naprawia kłopot, prawdopodobnie dopiero teraz indexer poprawnie odznacza includowanie..

Niniejszy problem, który opisujemy jeszcze da się jakoś wytrychem, ale spróbujcie zadeklarować:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

powinno działać, a jednak indexer sobie nie radzi i mamy błąd, a tu już wytrych nie wystarczy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 09:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Najśmieszniejsze jest to że Mirek od zawsze w poradnikach mawiał aby zegar ustawiać nie w kreatorze, ale po założeniu projektu w jego właściwościach ze względu na wygodną listę rozwijalną. Procek attiny13 ma nietypowe taktowanie którego niema na liście więc i tak trzeba wklepywać z palca więc czemu tego nie zrobić już w kreatorze - i tu tkwi błąd, bo okazuje się że zmiana we właściwościach projektu samego taktowania również naprawia problem z niewłaściwym wyborem procka w io.h więc jakby zrobić po Mirkowemu było by OK (prawdopodobnie jak nie dokonamy zmian w zakładce "Target Hardware" i klikniemy Apply to jest sprawdzane czy zaszły zmiany w zakładce i jak nie to nic też nie jest zapisywane do konfiguracji, natomiast jakakolwiek zmiana w zakładce np taktowanie lub procek, i klik na Apply powoduje że zmiany są zapisywane i wszystko właściwie odświeżane. Coś musi być zbabolone w kreatorze bo procek atmega16 jest domyślnym wyborem, nawet jak w zakładce "Target Hardware" klikniemy "Restore Defaults" wskakuje właśnie atmega16 i taktowanie 1000000)
I tu dochodzimy do sedna: Trzeba słuchać Mirka bo ten Pan dobrze gada, a nie kombinować po swojemu jakieś dziwne zmiany. ;)

[ tak przy okazji ;) poproszę tylko o nie używanie czerwonego koloru w postach - rezerwujemy go do uwag moderatorów ok? - mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 10:14 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

xentis napisał(a):
Pomaga dopiero wejście we właściwości projektu i "Target Hardware" wybranie innego procka np attiny13A ->Apply, wybranie attiny13 -> Apply.


eeeeh powiem Wam, że to właśnie takie kruczki powodowały, że długo wyrywałem sobie ostatnie włosy z głowy podczas pisania programu ECLIPSE GADGET, bo wtedy właśnie zauważyłem ... że wybrany procek podczas kreowania projektu nie powoduje kilku dodatkowych linijek wpisu w niektórych (ważnych z punktu widzenia działania Eclipse GADGETA) ... Natomiast gdy już "ręcznie" ustawimy procka - po założeniu projektu tak jak tu pisze kolega xentis - to wtedy pojawiają się te brakujące dodatkowe linijki w tych plikach - no i Eclipse Gadget może działać stabilnie ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2017, o 20:27 
Offline
Nowy

Dołączył(a): 29 paź 2015
Posty: 6
Pomógł: 0

Obawiałem się, że temat wyląduje w koszu, a tu proszę: garść przydatnych informacji wyczerpujących temat.
Na szczęście to nie elektroda.. ;)

Dziękuję i pozdrawiam.



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: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO