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



Teraz jest 28 mar 2024, o 20:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 9 maja 2014, o 09:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

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


Projekt ustawiony dla ATMEGA8, (w Miscellanous opcja do rozpoznawania procesora po nazwie wpisana zgodnie z bluebookiem )kompilator w Eclipse zgłasza błąd dla drugiego warunku czyli dla atmega328 . Komunikat błędu :

../main.c: In function 'main':
../main.c:81: error: 'EIMSK' undeclared (first use in this function)
../main.c:81: error: (Each undeclared identifier is reported only once
../main.c:81: error: for each function it appears in.)
../main.c:82: error: 'EICRA' undeclared (first use in this function)
make: *** [main.o] Error 1

Czy ktoś z Szanownych Forumowiczów byłby uprzejmy podpowiedzieć co może być przyczyną komunikatu o błędzie. Wygląda to tak jakby obie opcje były kompilowane choć warunek spełnia tylko jedna.

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2014, o 10:13 
Offline
Użytkownik

Dołączył(a): 25 sty 2014
Posty: 185
Lokalizacja: Działoszyn
Zbananowany użytkownik

Pomógł: 8

możesz użyc kompilacji warunkowej np w ten sposób

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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2014, o 11:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

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


Jeśli zamiast warunku dotyczącego atmegi328 zmienię zapis na negację !atmega8 to kompilator nie zgłasza wtedy błędów , czyli jeśli mamy w projekcie ustawioną atmegę 8 to drugi warunek nie jest kompilowany i to jest oczywista oczywistość
Nadal jednak nie wiem gdzie tkwi przyczyna błędu w zapisie pierwotnym czyli #if MCU == atmega328 .

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2014, o 11:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

Jeśliby kolega wpisał

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


powinno zadziałać.

A czy mógłby kolega pokazać więcej kodu z
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 5 minutach ]

Ja osobiście bardziej skłanałbym się do zapisu
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2014, o 13:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Dziękuję bardzo koledze acid3 za podanie alternatywy dla mojego problemu. Bo tak jak kolega podał kod to działa i mucha nie siada. Męczy mnie jednak nadal dlaczego podany przeze mnie zapis nie działa prawidłowo, wzorowałem się tutaj na zapisie Pana Mirka ze strony 137 z Bluebooka łącznie z ustawieniem MCU w Eclipsie C/C++ Build / Settings / AVR Compiler / Miscellanous jako -DMCU=$(AVRTARGETMCU) str 138, w świetle tego zapisu zmienna MCU powinna być teoretycznie rozpoznawana w procesie kompilacji tak jak np F_CPU bez podawania w #define.
Jedyne co mi przychodzi do głowy to to , że jednak te ustawienie w Eclipse (-DMCU=$(AVRTARGETMCU) zapodane w Bluebook-u na str 138 coś nie zatrybia u mienia :)

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2014, o 13:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

Później poszukam, bo jakoś nie kojarzę tego z BB ... :) i zobaczę jak to wygląda...

Tak czy inaczej moim zdaniem lepiej jest opierać się na toolchainowych #define'ach bo nie powstaje wtedy bałagan i kilka wersji tego samego. W tym drugim zapisie wystarczy zmienić procka we właściwościach projektu i nic więcej nie trzeba pamiętać. :)

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2019, o 18:16 
Offline
Nowy

Dołączył(a): 04 sie 2019
Posty: 22
Pomógł: 0

Witam.
Miałem podobny problem ATmega328 ale po zastosowaniu "#ifdef __AVR_ATmega328__... #endif" ten niby błąd zniknął (kompilator nie sygnalizował błędu ale w edytorze i eksploratorze był błąd). Piszę niby błąd ponieważ plik *.hex po załadowaniu do procesora działał poprawnie.
Co więcej skompilowany kod programu zmniejszył się o 26 bajtów. Ciekaw jestem dlaczego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2019, o 17:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

wat1970 napisał(a):
Dziękuję bardzo koledze acid3 za podanie alternatywy dla mojego problemu. Bo tak jak kolega podał kod to działa i mucha nie siada. Męczy mnie jednak nadal dlaczego podany przeze mnie zapis nie działa prawidłowo, wzorowałem się tutaj na zapisie Pana Mirka ze strony 137 z Bluebooka łącznie z ustawieniem MCU w Eclipsie C/C++ Build / Settings / AVR Compiler / Miscellanous jako -DMCU=$(AVRTARGETMCU) str 138, w świetle tego zapisu zmienna MCU powinna być teoretycznie rozpoznawana w procesie kompilacji tak jak np F_CPU bez podawania w #define.
Jedyne co mi przychodzi do głowy to to , że jednak te ustawienie w Eclipse (-DMCU=$(AVRTARGETMCU) zapodane w Bluebook-u na str 138 coś nie zatrybia u mienia

A zobacz jak masz w konsoli wypisywane w komendzie kompilowania?

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2019, o 17:35 
Offline
Użytkownik
Avatar użytkownika

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

Koledzy, zwróciliście uwagę na daty postów? Szpadle połamiecie wykopując tak stare wątki... :lol:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 wrz 2019, o 12:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

xentis napisał(a):
Koledzy, zwróciliście uwagę na daty postów? Szpadle połamiecie wykopując tak stare wątki... :lol:
No tak, dałem się zapędzić do kopania :(. No cóż, tak bywa jak się jest za dobrym i jak się widzi że ktoś kopie i się nie patrzy tylko łapie za szpadel :oops: ...

--
Pozdrawiam,
Robert



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 7 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