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



Teraz jest 8 lut 2026, o 07:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 22 lip 2016, o 07:46 
Offline
Nowy

Dołączył(a): 01 lip 2015
Posty: 7
Pomógł: 0

Witam,

jestem początkującym adeptem programowania . Kupiłem sobie niedawno wyświetlacz LCD HD44780. Postanowiłem go sprawdzić czy on w ogóle działa. Znalazłem gotowy projekt gdzieś na forum , który działa. Mi niestety pokazują się takie błędy:

08:21:51 **** Incremental Build of configuration Release for project LCD2 ****
make all
'Building file: ../main.c'
'Invoking: AVR Compiler'
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
../main.c: In function 'main':
../main.c:11:9: warning: implicit declaration of function 'LCD_Initalize' [-Wimplicit-function-declaration]
LCD_Initalize();
^
../main.c:13:9: warning: implicit declaration of function 'LCD_Home' [-Wimplicit-function-declaration]
LCD_Home();
^
../main.c:14:9: warning: implicit declaration of function 'LCD_Clear' [-Wimplicit-function-declaration]
LCD_Clear();
^
../main.c:15:9: warning: implicit declaration of function 'LCD_GoTo' [-Wimplicit-function-declaration]
LCD_GoTo(2,2);
^
../main.c:16:9: warning: implicit declaration of function 'LCD_WriteText' [-Wimplicit-function-declaration]
LCD_WriteText("Kocham Cie!");
^
'Finished building: ../main.c'
' '
'Building target: LCD2.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,LCD2.map -mmcu=atmega8 -o "LCD2.elf" ./main.o
./main.o: In function `main':
main.c:(.text.startup.main+0x0): undefined reference to `LCD_Initalize'
main.c:(.text.startup.main+0xe): undefined reference to `LCD_Home'
main.c:(.text.startup.main+0x10): undefined reference to `LCD_Clear'
main.c:(.text.startup.main+0x1a): undefined reference to `LCD_GoTo'
main.c:(.text.startup.main+0x20): undefined reference to `LCD_WriteText'
collect2.exe: error: ld returned 1 exit status
make: *** [LCD2.elf] Błąd 1

08:21:52 Build Finished (took 1s.187ms)

Obrazek z funkcji main.c
Obrazek

HD44780 cz.1
Obrazek

HD44780 cz.2
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 07:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sie 2015
Posty: 205
Lokalizacja: UK
Pomógł: 10

Witam,
Kompilator mówi o braku deklaracji funkcji.
Gdzie jest plik C [HD44780.c] z definicjami -(ich tu również nie widzę) ? (Bo rozumiem, że nie korzystasz z biblioteki z BB)

Pozdr.

_________________
MMT Technologies



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 08:06 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 183
Lokalizacja: Kraków
Pomógł: 30

No tak, ewidentnie widać, że nie ma pliku HD44780.c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 08:47 
Offline
Nowy

Dołączył(a): 02 kwi 2013
Posty: 4
Pomógł: 0

Jeśli tylko poprawnie podłączyłeś wyświetlacz, to po podaniu pliku nagłówkowego powinno działać ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 09:07 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Cytuj:
to po podaniu pliku nagłówkowego powinno działać


i pliku źródłowego .c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 09:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 mar 2015
Posty: 116
Pomógł: 16

@kopcor07
tak z kronikarskiego obowiązku;
kolego, nie jesteś na forum "od wczoraj", wypadałoby się stosować do:
topic7402.html
bo Ci moderator ....
Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 09:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Kolego brak pliku hd44780.c z funkcjami. Plik .h posiada tylko naglowki funkcji oraz definicje pinow.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 14:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 gru 2014
Posty: 77
Lokalizacja: Gorlice
Pomógł: 5

Tak jak piszą inni brak pliku hd44780.c, a nikt Ci nie da bibliotek gotowych z Mirka książki, więc nie licz że znajdziesz jakieś na forum.
Mogę jedynie pomóc podając link do ogólnie dostępnych http://radzio.dxp.pl/hd44780/.
Kup sobie książkę https://www.sklep.atnel.pl/pl/p/Mikroko ... endrive/75, jeśli naprawdę chcesz zacząć przygodę z programowaniem :).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2016, o 22:08 
Offline
Nowy

Dołączył(a): 01 lip 2015
Posty: 7
Pomógł: 0

Andrzej
mam kupioną książkę tylko jakoś słabo mi idzie przyswajanie wiedzy z programowania. Nie mam ostatnio czasu aby tak porządnie usiąść przy tym i popatrzeć co i jak.

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

maverick_as
wiem , że jestem nie od dziś na forum ale miałem długa przerwę od programowania i nie pamiętam niektórych rzeczy

------------------------ [ Dodano po: 3 minutach ]

teraz mam takie błędy

22:33:46 **** Incremental Build of configuration Release for project LCD2 ****
make all
'Building target: LCD2.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,LCD2.map -mmcu=atmega8 -o "LCD2.elf" ./HD44780.o ./main.o
./main.o: In function `_LCD_OutNibble':
main.c:(.text._LCD_OutNibble+0x0): multiple definition of `_LCD_OutNibble'
./HD44780.o:HD44780.c:(.text._LCD_OutNibble+0x0): first defined here
./main.o: In function `_LCD_Write':
main.c:(.text._LCD_Write+0x0): multiple definition of `_LCD_Write'
./HD44780.o:HD44780.c:(.text._LCD_Write+0x0): first defined here
./main.o: In function `LCD_WriteCommand':
main.c:(.text.LCD_WriteCommand+0x0): multiple definition of `LCD_WriteCommand'
./HD44780.o:HD44780.c:(.text.LCD_WriteCommand+0x0): first defined here
./main.o: In function `LCD_WriteData':
main.c:(.text.LCD_WriteData+0x0): multiple definition of `LCD_WriteData'
./HD44780.o:HD44780.c:(.text.LCD_WriteData+0x0): first defined here
./main.o: In function `LCD_WriteText':
main.c:(.text.LCD_WriteText+0x0): multiple definition of `LCD_WriteText'
./HD44780.o:HD44780.c:(.text.LCD_WriteText+0x0): first defined here
./main.o: In function `LCD_GoTo':
main.c:(.text.LCD_GoTo+0x0): multiple definition of `LCD_GoTo'
./HD44780.o:HD44780.c:(.text.LCD_GoTo+0x0): first defined here
./main.o: In function `LCD_Clear':
main.c:(.text.LCD_Clear+0x0): multiple definition of `LCD_Clear'
./HD44780.o:HD44780.c:(.text.LCD_Clear+0x0): first defined here
./main.o: In function `LCD_Home':
main.c:(.text.LCD_Home+0x0): multiple definition of `LCD_Home'
./HD44780.o:HD44780.c:(.text.LCD_Home+0x0): first defined here
./main.o: In function `LCD_Initalize':
main.c:(.text.LCD_Initalize+0x0): multiple definition of `LCD_Initalize'
./HD44780.o:HD44780.c:(.text.LCD_Initalize+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [LCD2.elf] Błąd 1

22:33:47 Build Finished (took 565ms)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 09:32 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Co dokładnie zmieniłeś? Masz wielokrotne definicje funkcji lcd.

Pamiętaj, że plików ".c" nie includujemy w pliku main.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 10:28 
Offline
Nowy

Dołączył(a): 01 lip 2015
Posty: 7
Pomógł: 0

Skorzystałem z bibliotek do LCD od radzia i dopisałem #include "HD44780.h" i #include "HD44780.c" do 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.


------------------------ [ Dodano po: 1 minucie ]

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

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  
PostNapisane: 25 lip 2016, o 10:56 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Tak jak napisałem wyżej nie dołączamy plików ".c" do main.c. (Wykasuj z main "#include "HD44780.c"")



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 14:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 gru 2014
Posty: 77
Lokalizacja: Gorlice
Pomógł: 5

Pobrałeś nie tą bibliotekę od radzia :) powinna być ta http://radzio.dxp.pl/hd44780/hd44780_av ... _rw_c.html bo wyświetlacz masz podłączony wg Mirka schematu a tam jest RW podłączone do procka :D
więc albo importuj sobie projekty z płyty czy pena do eclipsa wg poradnika https://youtu.be/AroKPav3On4?t=603
a tu masz prawidłową bibliotekę radzia +twój main.c bez polskich znaków tekst na lcd inaczej będą krzaczki i coś troszkę zmieniłem :)
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.


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


hd.c
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 25 lip 2016, o 18:40 przez Andrzej, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 15:24 
Offline
Nowy

Dołączył(a): 01 lip 2015
Posty: 7
Pomógł: 0

Wielkie dzięki :D działa :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 20:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Kolego skoro masz BB to po co się katujesz innymi bibliotekami bez opisów ?
Weź no książkę w łapki otwórz na rozdziale LCD nikt ci nie karze pisać bibliotek z książka bo są na DVD / PENDRIVE dołączone kopiujesz pliki do projektu includujesz w main.c plik .h i jedziesz razem z Książką.

Dziwie się, że mając książkę katujesz się bibliotekami od Radzia nie to aby były złe ale skoro używasz jego libsów i Tobie nie działa to powinieneś pytać się Radzia :)
Skoro co niektórzy mają problem z LCD z BB a pytają się Mirka ?

Nieprawdaż ?

_________________
Usługi druku przestrzennego - www.drumik.pl



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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