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



Teraz jest 30 mar 2026, o 20:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 14 kwi 2015, o 19:08 
Offline
Nowy

Dołączył(a): 19 mar 2015
Posty: 8
Pomógł: 0

Witam!
Ze strony nerdkit ściągnąłem gotowy plik do obsługi odczytywania kodu Morse'a wywoływanego z przycisku.
http://www.nerdkits.com/videos/morsedecoder/ --> filmik pokazujący działanie.
Ściągnąłem source code'a, dołączyłem ich pliki nagłówkowe. Niestety wywala mi błędy "undefined refference to".
Rozumiem, że są błędy z pobieraniem danych z pliku lcd.h. Zastanawiam się czemu wszystkich zmiennych z tej biblioteki nie wywala z takim błędem. Jak to naprawić?


Kod:
**** Build of configuration Release for project morse_nerdkit ****

make all
Building target: morse_nerdkit.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,morse_nerdkit.map -mmcu=atmega16 -o "morse_nerdkit.elf"  ./main.o   
./main.o: In function `main':
main.c:(.text+0x100): undefined reference to `lcd_init'
main.c:(.text+0x104): undefined reference to `lcd_home'
main.c:(.text+0x120): undefined reference to `lcd_home'
main.c:(.text+0x128): undefined reference to `lcd_write_string'
main.c:(.text+0x12c): undefined reference to `lcd_line_two'
main.c:(.text+0x134): undefined reference to `lcd_write_string'
main.c:(.text+0x14a): undefined reference to `lcd_home'
main.c:(.text+0x152): undefined reference to `lcd_write_string'
main.c:(.text+0x170): undefined reference to `lcd_set_type_command'
main.c:(.text+0x178): undefined reference to `lcd_write_byte'
main.c:(.text+0x17e): undefined reference to `lcd_write_data'
main.c:(.text+0x19c): undefined reference to `lcd_set_type_command'
main.c:(.text+0x1a4): undefined reference to `lcd_write_byte'
main.c:(.text+0x1aa): undefined reference to `lcd_write_data'
main.c:(.text+0x1b8): undefined reference to `lcd_set_type_command'
main.c:(.text+0x1c0): undefined reference to `lcd_write_byte'
main.c:(.text+0x1cc): undefined reference to `lcd_write_data'
main.c:(.text+0x1d8): undefined reference to `lcd_write_data'
main.c:(.text+0x1e4): undefined reference to `lcd_set_type_command'
main.c:(.text+0x1ea): undefined reference to `lcd_write_byte'
main.c:(.text+0x1f2): undefined reference to `lcd_write_int16'
main.c:(.text+0x1f8): undefined reference to `lcd_write_data'
main.c:(.text+0x1fe): undefined reference to `lcd_write_data'
make: *** [morse_nerdkit.elf] Error 1

**** Build Finished ****


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


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


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



Ostatnio edytowano 14 kwi 2015, o 22:04 przez zbiorro, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 21:28 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Źle wstawiłeś te kody i niestety nie widać części tekstu. Należy używać listing kodu: SYNTAX: wybierz i wybrać C
Do projektu powinieneś dodać jeszcze pliki lcd.c i delay.c

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 22:05 
Offline
Nowy

Dołączył(a): 19 mar 2015
Posty: 8
Pomógł: 0

Poprawione.
Co powinienem umieścić w tych plikach?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 22:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
A czy w projekcie pliki led.c i led.h masz jako osobny folder czy bezpośrednio, bo gdyby to był folder to trzeba zaincludowć: "nazwa_folderu/lcd.h."
A z tego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to bym zrezygnował ;)

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 22:49 
Offline
Nowy

Dołączył(a): 19 mar 2015
Posty: 8
Pomógł: 0

Nie posiadam pliku lcd.c, z pliku głównego main.c odwołuję się do lcd.h i delay.h.
Są w tym samym folderze.
Jeśli mam stworzyć plik lcd.c to co powinienem w nim umieścić?
Dalej zastanawiam się, czemu część zmiennych odczytuje normalnie, a część odrzuca..

@kicajek - usuwam więc tę linijkę ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 23:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

zbiorro napisał(a):
Jeśli mam stworzyć plik lcd.c to co powinienem w nim umieścić?

Rozwiązanie kopiuj-wklej, które zastosowałeś nie sprawdzi się kiedy nie zrozumiesz chociaż pobieżnie sensu działania kompilatora/aplikacji.
Radzę zacząć naukę od książek, ew. dobrych artykułów/kursów dostępnych w internecie. Wierz mi na słowo, że po tych problemach będą kolejne, które okażą się zbyt trudne bez opanowania podstaw.

zbiorro napisał(a):
@kicajek - usuwam więc tę linijkę

Bez wiedzy o tym co robisz - odradzam.

Oczywiście nie piszę tego wszystkiego, aby celowo nie pomóc. Wręcz przeciwnie, chciałbym zaznaczyć że nie wszystko można szczegółowo wyjaśnić w kilku zdaniach (w końcu po co ludzie pisaliby książki ;) ).

Odpowiadając na Twoje pytanie - potrzebujesz pliku "lcd.h" w parze z "lcd.c", którego na chwilę obecną sam nie uzupełnisz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 23:25 
Offline
Nowy

Dołączył(a): 19 mar 2015
Posty: 8
Pomógł: 0

@atmel - rozumiem, douczę się. Możesz doradzić jakąś konkretną literaturę/źródła? Mam książkę Pana Mirka "Mikrokontrolery AVR Język C - podstawy programowania", znajdę tam informacje na ten temat? Największy problem jest taki, że strasznie goni mnie czas, więc jeżeli dalibyście radę mnie jakoś konkretnie nakierować, byłbym dozgonnie wdzięczny.


----------
Znalazłem pliki źródłowe lcd.c i delay.c, przepuściłem przez kompilację i nie wywala już błędów :)
Co do wcześniejszych uwag - o wiele łatwiej mi się uczy przeglądając kod i przerabiając go. Chciałem skompilować ten program, by ćwiczyć edytując :) Chciałbym na razie tylko go puścić i zobaczyć co będzie się działo.


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


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



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

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