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



Teraz jest 27 wrz 2024, o 23:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 5 gru 2012, o 23:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lis 2012
Posty: 41
Lokalizacja: Gdańsk
Pomógł: 1

Witam.
Od niedawna jestem posiadaczem książki "Mikrokontrolery AVR język C podstawy programowania". Od jakiegoś czasu nurtuje mnie pewne pytanie, ale nie mogę nigdzie znaleźć odpowiedzi. Mianowicie chciałem poprawnie tworzyć pliki projektów *.c oraz nagłówkowe *.h. Niestety jeśli w pliku main.c nie załączę pliku *.c program nie kompiluje się, błąd:"Error 1 undefined reference to `dodawanie' " - nie rozpoznaje funkcji z pliku *.c. Gdy plik jest załączony w main.c w postaci #include "*.c" kompilacja przebiega poprawnie. Dla upewnienia się sprawdziłem też z gotowym projektem z książki modułu LCD. Aby program się skompilował musiałem dodać poprawki w postaci dodania w pliku main.c #include "LCD/lcd44780.c. Dziwi mnie to gdyż w książce wyraźnie jest napisane że należy zapomnieć o deklarowaniu plików *.c. Proszę o wskazówki do rozwiązania opisanego problemu. :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2012, o 00:04 
Offline
Moderator
Avatar użytkownika

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

No i bardzo słuszne są te uwagi w książce - żeby nie inkludować plików *.c a ty to robisz i się dziwisz :(

Po pierwsze zostaw w diabły AVR Studio
Po drugie zajrzyj na DVD dołączone do książki i do folderu Lekcje VIDEO
Obejrzyj tych kilka pierwszych lekcji VIDEO
Na ich podstawie uruchom ECLIPSE z DVD
Na DVD masz też pięknie wszystkie projekty właśnie w Eclipse zrobione jak się należy

i wtedy ćwicz po kolei z książką - i jeszcze raz powtórzę, ZAPOMNIJ o inkludowaniu plików *.c, a jeśli uważasz że tak ci działa - no to ja już przecież dalej cię nie przekonam :(

Tymczasem zobaczysz że każdy projekt w Eclipse na DVD jest poprawnie zbudowany, ma WSZYSTKO poprawnie zainkludowane i działa - więc będziesz miał się z czego uczyć

AVR Studio to utrapienie - przynajmniej na tym etapie nauki

OK - jak zaczniesz w Eclipse i wtedy będzie coś niejasne to śmiało pisz - zawsze chętnie pomogę ale jestem pewien, że w Eclipse szybko znajdziemy wspólny język ;) zobaczysz

_________________
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: 6 gru 2012, o 00:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lis 2012
Posty: 41
Lokalizacja: Gdańsk
Pomógł: 1

Od dłuższego czasu miałem zainstalowane właśnie AVRStudio. Przyzwyczaiłem się do interfejsu i nie potrzebowałem zmian. Będzie też Eclipse. Na to forum zaglądam od niedawna, ale pierwsze co widzę to nagonka na AVRStudio. Nie neguję, że być może zasłużone baty zbiera, ale końcu też jest to środowisko do programowania (lepsze czy gorsze). Zastanawiało mnie tylko jaki jest powód dla którego nie należy dodawać do main plików z rozszerzeniem *.c i w jaki sposób go dodaje kompilator w Eclipse skoro w pliku *.h nie ma do niego odniesienia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2012, o 00:47 
Offline
Moderator
Avatar użytkownika

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

Nie ma nagonki na arr studio, tylko po prostu w eclipse jest mi łatwiej wytłumaczyć wiele rzeczy początkującym ale jak ktoś się zaprzesz to co ją poradzę ?

A to nie jest kwestia eclipse czy arr studio panie kolego że nie konkluduje się plików *.c tylko kwestia kompozytora C i nieznajomości jego działania. W dużym skrócie o plikach *.c wie on z pliku sterującego makefile. Bo to w nim środowisko dodaje pliki tyle że w sposób dla ciebie niewidoczny na pierwszy rzut oka. I teraz zaczynają się różnice pomocy eclipse i ars. Ale jak mœwiłem ja mogę dalej pomagać jak zdecydujesz się na eclipse. A jak się nauczysz i rozumiesz to wtedy pisz w czym chcesz nikt ci nie broni

------------------------ [ Dodano po: 2 minutach ]

Sroki za dziwne znaki ale piszę z telefonu

_________________
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: 6 gru 2012, o 08:52 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

To ja się podepnę z pytaniem. Czy jest możliwe w Eclipse aby w kartotece projektu znajdowały się pliki *.c których Eclipse automatycznie nie dorzuci do kompilacji? Chodzi mi o sytuację gdzie mam w kilku plikach *.c różne warianty tej samej funkcji i chciałbym je sobie testowo podmieniać. I pokrewne pytanie. Czy jest możliwe usunięcie z projektu pliku *.c bez jego fizycznego kasowania z dysku. Automatyka Eclipse w kontekście make jest fajna ale trochę pozbawia kontroli, Być może o czymś nie wiem.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2012, o 10:25 
Offline
Moderator
Avatar użytkownika

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

perlon napisał(a):
Automatyka Eclipse w kontekście make jest fajna ale trochę pozbawia kontroli, Być może o czymś nie wiem.


No właśnie kolega czegoś nie wie. A specjalnie już w pierwszym projekcie na DVD (miganie diody LED) nie bez kozery odwołuję się właśnie do takiej możliwości Eclipse, swobodnego włączania lub wyłączania plików z projektu. Bo właśnie w tym celu się to wykorzystuje - dokładnie to o czym kolega pisze, aby móc na szybko np stworzyć inny plik main.c dla testu

służy do tego opcja

"EXCLUDE FROM BUILD"

i pokazuję jak się nią posługiwać w pierwszej lekcji VIDEO na DVD dołączonym do książki - zaglądał kolega do tych lekcji ?

_________________
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: 17 gru 2012, o 19:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lis 2012
Posty: 41
Lokalizacja: Gdańsk
Pomógł: 1

Postanowiłem że będę korzystać jednocześnie z obu środowisk. Poniżej dla zainteresowanych zamieszczam odpowiedz na moje pytanie: konfigurację częstotliwości taktowania procesora F_CPU w pliku makefile oraz dołączanie istniejących bibliotek z innych plików w projekcie w AVRStudio6 (np. import z workspace z ECLIPSE).

Aby ustawić częstotliwość taktowania procesora F_CPU w pliku makefile należy:
1. W menu Project wybrać opcję main Properties...
Obrazek

2. Wybrać zakładkę Toolchain a w niej AVR/GNU C Compiler -> Symbols oraz przycisk Add Item
Obrazek

3. Teraz należy zdefiniować wybraną częstotliwość taktowania procesora w postaci F_CPU=8000000UL [np.8MHz] i nacisnąć OK.
Obrazek

Po zatwierdzeniu częstotliwość taktowania jest zdefiniowana na stałe w projekcie w pliku makefile i nie musimy jej includować w pliku main.
Obrazek


Dołączanie plików nagłówkowych *.h oraz plików z funkcjami *.c z innych plików projektu:

Po stworzeniu nowego projektu wygląda on następująco:
Obrazek

Opcja dodawania do projektu nowych plikiów nagłówkowych *.h oraz plików *.c zawierających funkcje nie jest podświetlona, ...
Obrazek

... aby ją włączyć należy otworzyć okno właściwości projektu (Menu Project -> main Properties Alt+F7) po tej operacji przycisk będzie już podświetlony:
Obrazek

Następnie można do projektu dołączyć potrzebne pliki, które będą po tej operacji widoczne w oknie "Solution Explorer"
Obrazek

Mam nadzieję że opis może się komuś przydać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2012, o 20:12 
Offline
Moderator
Avatar użytkownika

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

Tak, tylko że jeszcze przydałyby się foldery a nie wszystkie pliki projektu wrzucać do głównego folderu - bo wyjdzie kaszanka :(

_________________
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: 17 gru 2012, o 20:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lis 2012
Posty: 41
Lokalizacja: Gdańsk
Pomógł: 1

Tak to moja wina, na szybkości zaimportowałem pliki tylko do głównego folderu projektu.
Nowy folder łatwo utworzyć w Solution Explorer i do niego wtedy wrzucamy pliki od danej biblioteki wtedy projekt staje się bardziej przejrzysty. :D

Obrazek

Teraz wracam do zajęć z ECLIPSE :), Małe problemy z wykrywaniem programatora, prawdopodobnie nie obejdzie się bez programowania wsadu dla AVRDude. :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2012, o 20:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

ani z Dragonem , ani MKII ani FTDI , ani z USBASP nie miałem pod Eclipse problemu nigdy że nie wspomne o J-Linkach , St-Linkach, Segerach, OPEN-OCD, CCDEbugerach i innych ....

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2012, o 21:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lis 2012
Posty: 41
Lokalizacja: Gdańsk
Pomógł: 1

Niestety u mnie jak zwykle pod górkę. Robię nawet krok po kroku z lekcji video i go nie wykrywa. Mam AVRISP mkII kupiony jakiś rok temu i z AVRStudio śmiga bez kłopotów. Pomimo że to klon AVRStudio go wykrywa. W ECLIPSE dodaję nowy i wybieram ATMEL AVRISP mkII. Podczas próby porgramowania wyrzuca błąd "operation timeout". Nie jestem pewny czy to tyko jakiś błąd w ustawieniach. Muszę poszukać w jego dokumentacji, bo pamiętam że do pracy z AVRDude trzeba go chyba przeprogramować. :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2012, o 09:42 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Ja jeszcze w temacie dodawania/odejmowania plików do projektu. Opcja Exlude from Build działa ale w drugą stronę trochę nie bardzo.
Obrazek
Obecnie używam Indigo.

------------------------ [ Dodano po: 7 minutach ]

Już znalazłem lecz obsługa sory ale nie jest "intuicyjna". Trzeba w opcji Exclude from Build odznaczyć konfigurację żeby na powrót plik został dołączony do projektu. A wydawałoby się że powinna do tego służyć opcja obok czyli Reset to deafault. No i trzeba jeszcze zrobić Refresh na projekcie bo przekreślenia na dodanych powrotnie plikach same nie znikają.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2012, o 10:08 

Pomógł: 0

swibno napisał(a):
Niestety u mnie jak zwykle pod górkę. Robię nawet krok po kroku z lekcji video i go nie wykrywa. Mam AVRISP mkII kupiony jakiś rok temu i z AVRStudio śmiga bez kłopotów. Pomimo że to klon AVRStudio go wykrywa. W ECLIPSE dodaję nowy i wybieram ATMEL AVRISP mkII. Podczas próby porgramowania wyrzuca błąd "operation timeout". Nie jestem pewny czy to tyko jakiś błąd w ustawieniach. Muszę poszukać w jego dokumentacji, bo pamiętam że do pracy z AVRDude trzeba go chyba przeprogramować. :(

Dopisz we własciwościach wybranego AVRISP mkII polecenie -USB



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2012, o 10:39 
Offline
Moderator
Avatar użytkownika

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

perlon napisał(a):
Już znalazłem lecz obsługa sory ale nie jest "intuicyjna". Trzeba w opcji Exclude from Build odznaczyć konfigurację żeby na powrót plik został dołączony do projektu. A wydawałoby się że powinna do tego służyć opcja obok czyli Reset to deafault. No i trzeba jeszcze zrobić Refresh na projekcie bo przekreślenia na dodanych powrotnie plikach same nie znikają.


Jest ta opcja intuicyjna i to bardzo - no.... tylko trzeba chcieć ją zrozumieć i zrozumieć działanie. Poza tym to NIE JEST OPCJA jak kolega pisał

dodawania/odejmowania plików do i z projektu

i stąd pewnie w głowie kolegi takie zamieszanie :(

"Exculde from Build" jak sama nazwa wskazuje oznacza "WYŁĄCZANIE" ale też jest tam WŁĄCZANIE - i to włączanie/wyłączanie nie tylko pojedynczych plików ale całych folderów.

To jest różnica panie kolego - tzn włączanie/wyłączanie różni się od dodawania/odejmowania plików do i z projektu.

To drugie czyli dodawanie/odejmowanie plików/folderów z projektu możemy dokonywać na dwa sposoby - albo ręcznie (tworząc lub kasując pliki i foldery) albo poprzez opcję IMPORTU.

Jak się to zrozumie to pewnie się troszkę inaczej poukłada to wszystko w głowie i mam nadzieję, że lepiej .... dlatego to wszystko tu opisuję. Zresztą nie tylko tu - czy oglądał kolega lekcje VIDEO na płycie DVD dołączonej do pierwszej książki ??? ... bo tam również DOKŁADNIE to pokazuję i omawiam.

Spróbuj więc porównać te wszystkie omówione tutaj opcje z samym kocim AVR Studio hmmm tzn jak ktoś sobie porówna to może zrozumie dlaczego ja np wolę i szczerze polecam wciąż ECLIPSE niż AVR Studio.

Owszem te opcje mogą być mało istotne dla osób które dopiero zaczynają pisać swoje programy albo piszą niewielkie i często jedno czy dwu- lub kilku-plikowe projekty

Za to jak się ktoś dalej rozpędzi i będzie tworzył większe - hmmm takie fajne potworki - to dopiero wtedy w 100% doceni to co jest w Eclipse ....

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO