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



Teraz jest 25 kwi 2024, o 13:05


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 6 mar 2019, o 14:58 
Offline
Nowy

Dołączył(a): 09 gru 2014
Posty: 9
Pomógł: 0

Witam, mam dziwny problem gdyż gdy wezmę jakikolwiek program z BB/GB to muszę zmienić w plikach nagłówkowych z *.h na *.c
czyli np z BB 03_Multi_LED
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cytuj:
avr-gcc.exe -Wall -gdwarf-2 -fsigned-char -MD -MP -DF_CPU=1000000 -O1 -mmcu=atmega32 -o "main.o" -c "../main.c"
avr-gcc.exe -mmcu=atmega32 -o "./Debug.elf" "main.o"
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: main.o: in function `main':
D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:17: undefined reference to `d_led_init'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:20: undefined reference to `cy1'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:21: undefined reference to `cy2'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:22: undefined reference to `cy3'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:23: undefined reference to `cy4'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:45: undefined reference to `cy1'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:47: undefined reference to `cy2'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:49: undefined reference to `cy3'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:51: undefined reference to `cy4'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:45: undefined reference to `cy1'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:47: undefined reference to `cy2'
c:/winavr-20100110/bin/../lib/gcc/avr/8.3.0/../../../../avr/bin/ld.exe: D:\avr\proteus\sterownik v2.0\ATMEGA32\Debug/../main.c:49: undefined reference to `cy3'
collect2.exe: error: ld returned 1 exit status
make: *** [Debug.elf] Error 1

Error code 2

nie działa a chyba ze zmienię
#include "d_led.h"
na
#include "d_led.c"
wtedy wszystko jest OK
Korzystam z Proteus z WinAVR-20100110 oraz czasem z Programmers notepad i efekt ten sam.
//dodam ze na innym komputerze jest ten sam efekt.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2019, o 16:23 
Offline
Nowy

Dołączył(a): 09 gru 2014
Posty: 9
Pomógł: 0

wszystko zostawiam tak jak M. Kardaś wiec tak jak w przypadku #include "d_led.c" nie ma osobnego folderu.
Dla #include "LCD/lcd44780.h" jest osobny o nazwie "LCD".



//Mój głupi błąd, przez pare lat żyłem w nieświadomości że pomimo #include w main.c w programie muszą być otwarte wszystkie pliki *.c.
Więc jak otwierałem tylko main to kompilacja nie przechodziła. Jak otwieram każdy plik osobno a potem kompiluje main to przechodzi:D

Tak wyglądający projekt działa już poprawnie.
Obrazek

//TEMAT MOŻNA ZAMKNĄĆ:)



Ostatnio edytowano 6 mar 2019, o 16:31 przez komax3, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2019, o 16:30 
Offline
Moderator
Avatar użytkownika

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

komax3 napisał(a):
a chyba ze zmienię
#include "d_led.h"
na
#include "d_led.c"
wtedy wszystko jest OK

Przepraszam nie bierz tego do siebie ale no okrutne bzdury piszesz - zamiana plików nagłówkowych *.h na źródłowe *.c to - mniej więcej jak operacja odcięcia głowy i zamiany jej z pupą - pewnie w ten sposób też dałoby radę żyć ale dwa pytania:

1. jak długo ?
2. czy organizm będzie poprawnie działać w każdym przypadku?

to tak pół żartem ale też pół serio - bo w Bluebooku piszę WYRAŹNIE że NIGDY nie wolno tak robić, ba i wyjaśniam jeszcze dlaczego - a ty ZAMIAST szukać błędu w swoich działaniach - TRACH biegniesz po piłę żeby głowę odjąć ;)

komax3 napisał(a):
Korzystam z Proteus z WinAVR-20100110 oraz czasem z Programmers notepad i efekt ten sam.

A nie znasz nowszych i porządnych narzędzi? jak ECLIPSE, nawet Atmel Studio, albo Code Blocks ?

Toż jak robisz w notatniku to obstawiam że kompletnie być może nie wiesz co to jest plik sterujący kompilacją "makefile" i albo go w ogóle nie tworzysz albo źle go tworzysz ... Więc idąc tą drogą - nie dziwota, że wpadasz na tak drakońskie pomysły jak inkludowanie plików *.C a poprzez to tworzysz jakby jeden GIGANTYCZNY plik C który udaje się na zasadzie przypadku - skompilować.

jeśli już piszesz, że wszystko zostawiasz tak jak M.Kardaś - to weź że sięgnij po ECLIPSE i gwarantuję ci że wszystko ruszy od pierwszego kopa

_________________
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 mar 2019, o 16:40 
Offline
Nowy

Dołączył(a): 09 gru 2014
Posty: 9
Pomógł: 0

Właśnie dla tego założyłem temat żeby nie odcinać głowy bo to logiczne że coś było nie tak jak miało być:)
Jeżeli chodzi o kompilatory to próbowałem się przesiąść na Eclipse, ale mi nie spasował, spróbuje jeszcze z Atmel studio.
W każdym bądź razie dziękuję i pozdrawiam:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2019, o 17:06 
Offline
Moderator
Avatar użytkownika

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

komax3 napisał(a):
spróbuje jeszcze z Atmel studio

Albo o wiele lżejszy od obydwu wymienionych przeze mnie wcześniej CodeBlocks

warto warto - dlatego - że nie trzeba myśleć o ręcznym rzeźbieniu makefile

_________________
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 mar 2019, o 19:23 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2562
Pomógł: 126

A czemu nie MkClipse? Przecież to aż się prosi by skorzystać z tego super wygodnego narzędzia.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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