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



Teraz jest 30 mar 2026, o 18:14


Strefa czasowa: UTC + 1





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

Dołączył(a): 09 sie 2014
Posty: 4
Pomógł: 0

Z racji tego że jest to mój pierwszy post na tym forum chciałbym się ze wszystkimi serdecznie przywitać, więc witam :)

Otóż mam problem jak w temacie. A sprawa wygląda tak. Pisałem sobie biblioteczkę do obsługi wyświetlacza LCD posługując się w tym celu książeczką pana Kardasia "Mikrokontrolery AVR Język C - podstawy programowania"
Wszystko sobie idzie jak po maśle. Inicjalizacja przeszła, LCD się odezwał i wydał swoje pierwsze tchnienie w postaci napisu "HELLO WORLD". Zapisanego do pamięci ram. Wszystko było w porządku napisałem dalej zgodnie z książeczką wyświetlanie napisów z pamięci flash. Wszystko działa. A tu nagle zgrzyt :( . Robię to samo w celu wyświetlania napisów zapisanych w pamięci eeprom, przepisałem wszystko zgodnie z książką

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


i niestety wyrzuca mi błąd o następującej treści;

||=== Build: Release in lcd (compiler: GNU GCC Compiler for AVR) ===|
obj\Release\lcd.o||In function `lcd_string_E':|
lcd.c|| undefined reference to `__eerd_byte_m8'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

W oko żuciło mi sie równierz to ze mimo dołączonej biblioteki <avr/eeprom.h>, nie uzyskałem podpowiedzi co do uzywanej funkcji. Zawsze jak coś pisałem, pisałem pierwsze litery i samo wyrzucało podpowiedz o jaką funkcje chodzi, a ta jest jakby niewidoczna.
Projekt jest pisany pod mikro-kontroler atmega8, dodam ze przeszukałem troszeczkę i niestety nie znalazłem odpowiedzi rozwiązującej mój problem, projekt pisze w Codeblocks. Bardzo bym prosił o pomoc bo mecze się z tym już od pewnego czasu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2014, o 00:54 
Offline
Użytkownik
Avatar użytkownika

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

"eeprom_read_byte" to nie funkcja tylko makrodefinicja stąd brak podpowiedzi kompilatora.
Gdzie dodajesz plik nagłówkowy "avr/eeprom.h"? Powinien być w pliku "lcd.c" ponieważ to w nim następuje odwołanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2014, o 00:58 
Offline
Nowy

Dołączył(a): 09 sie 2014
Posty: 4
Pomógł: 0

Aha faktycznie makrodefinicja, to wiele wyjaśnia :). nagłówek dodaję i w "lcd.c" bo są tam odwołania do tych pamięci, i w pliku "main.c" żeby zapisywać tam zmienne.

Dalej nie mogę dojść do ładu z tym i nie wiem co źle robię dlatego wrzucam kod który do tej pory napisałem

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.


a to lcd.h, zalaczylem w niej biblioteke <avr/io.h> bo jest tam odniesienie do uint8_t

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 sie 2014, o 17:08 przez mirost, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2014, o 12:47 
Offline
Użytkownik
Avatar użytkownika

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

Witam
Przeedytuj zamieszczony tu program - "SYNTAX wybierz", a następnie po rozwinięciu daj "C"; trochę źle się to czyta.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 20:31 
Offline
Nowy

Dołączył(a): 09 sie 2014
Posty: 4
Pomógł: 0

A czy mógłby ktoś sprawdzić czy u niego się to kompiluje?? Bo cos mi się wydaje ze to może być jakiś problem albo z linkerem, albo z biblioteką, przynajmniej tyle udało mi się do tej pory dowiedzieć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 21:48 
Offline
Użytkownik
Avatar użytkownika

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

Witam
U mnie kompilacja przeszła bez problemu:
Obrazek
To chyba bez znaczenia ale plik "lcd.h" zacząłem od
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


...czyli troszkę inaczej niż jest u Ciebie.

edit: coś mu jednak nie pasuje bo są kłopoty z zapisywaniem - sory, ale już idę spać.

Pozdr.



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