logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega16] błedy kompilacji biblioteki wyswietlacza HD44780

BluePower 16 Sty 2010 16:09 2470 5
REKLAMA
  • #1 7544541
    BluePower
    Poziom 10  
    Jestem zielony wiec proszę o wyrozumiałość :(

    Zlutowałem sobie na płytce uniwersalnej taki sprzęt jak przedstawiony poniżej
    [atmega16] błedy kompilacji biblioteki wyswietlacza HD44780

    Korzystałem ze schematów:
    http://wkretak.pl/readarticle.php?article_id=16 (dla LCD z uwzględnieniem specyfikacji atmega16)
    http://www.mare.ee/indrek/timer/ (dla samego ISP)

    Korzystam z biblioteki http://radzio.dxp.pl/hd44780/ (Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości)


    Kompilacja przebiega bez błędów i warning'ów.
    Jednak przy Build wywala mi 1 error i 1 warning.
    Build started 16.1.2010 at 16:06:16
    avr-gcc  -mmcu=atmega16 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT gr33.o -MF dep/gr33.o.d  -c  ../gr33.c
    avr-gcc  -mmcu=atmega16 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT HD44780.o -MF dep/HD44780.o.d  -c  ../HD44780.c
    In file included from ../HD44780.h:14,
                     from ../HD44780.c:13:
    c:/winavr-20090313/lib/gcc/../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for <util/delay.h>"
    avr-gcc -mmcu=atmega16 -Wl,-Map=gr33.map gr33.o HD44780.o     -o gr33.elf
    HD44780.o: In function `_LCD_OutNibble':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:22: multiple definition of `_LCD_OutNibble'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:22: first defined here
    HD44780.o: In function `_LCD_InNibble':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:51: multiple definition of `_LCD_InNibble'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:51: first defined here
    HD44780.o: In function `_LCD_Read':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:89: multiple definition of `_LCD_Read'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:89: first defined here
    HD44780.o: In function `LCD_ReadStatus':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:124: multiple definition of `LCD_ReadStatus'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:124: first defined here
    HD44780.o: In function `_LCD_Write':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:67: multiple definition of `_LCD_Write'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:67: first defined here
    HD44780.o: In function `LCD_WriteCommand':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:113: multiple definition of `LCD_WriteCommand'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:113: first defined here
    HD44780.o: In function `LCD_WriteData':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:134: multiple definition of `LCD_WriteData'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:134: first defined here
    HD44780.o: In function `LCD_ReadData':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:144: multiple definition of `LCD_ReadData'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:144: first defined here
    HD44780.o: In function `LCD_WriteText':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:153: multiple definition of `LCD_WriteText'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:153: first defined here
    HD44780.o: In function `LCD_GoTo':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:164: multiple definition of `LCD_GoTo'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:164: first defined here
    HD44780.o: In function `LCD_Clear':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:173: multiple definition of `LCD_Clear'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:173: first defined here
    HD44780.o: In function `LCD_Home':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:183: multiple definition of `LCD_Home'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:183: first defined here
    HD44780.o: In function `LCD_Initalize':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:192: multiple definition of `LCD_Initalize'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:192: first defined here
    HD44780.o: In function `LCD_ProgrammChar':
    C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../HD44780.c:229: multiple definition of `LCD_ProgrammChar'
    gr33.o:C:\Documents and Settings\Szymon\Moje dokumenty\gr33\default/../hd44780.c:229: first defined here
    make: *** [gr33.elf] Error 1
    Build failed with 1 errors and 1 warnings...

    I nie wiem co jest nie tak. Nigdzie nie dublują się deklaracje i definicje funkcji.
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #3 7544843
    _Robak_
    Poziom 33  
    plik h normalnie includujesz, a plik .c przeciagasz do drzewka po lewej stronie w avr studio, o nazwie source czy jakos tak :)
  • REKLAMA
  • #4 7545149
    BluePower
    Poziom 10  
    Ja mam zarówno *.h jak i *.c w drzewku AVR studio.

    I z racji tego, że nie dodałem tych plików bibliotek do C://WinAVR/avr/include wiec nie dodaje do głównego pliku projektu
    #include <hd44780.c>

    a
    #include "hd44780.c"

    Poprawnie, prawda? :)


    Teraz nie mam jak przetestować, bo jestem na innym komputerze, ale wydaje mi się, że błędy nie ustąpią. Ponieważ plik nagłówkowy nie zawiera deklaracji wszystkich funkcji jakie występują w *.c, a tylko cześć.
    Nie zawiera funkcji zaczynających swoje nazwy od "_" (podkreślenia), a error o nich także występuje.
  • REKLAMA
  • Pomocny post
    #5 7545459
    tmf
    VIP Zasłużony dla elektroda
    Pliki z rozszerzeniem c to nie naglowki, tylko zrodla. Ty masz zainkludowac pliki z rozszerzeniem h - one nie zawieraja prototypow funkcji zaczynajacych sie od _ - w ten sposob nazywa sie funkcje, ktore sa wewnetrznymi funkcjami modulu, ktorych nie powinno sie uzywac poza nim.
  • #6 7546536
    BluePower
    Poziom 10  
    Dziękuję za pomoc :)

    Teraz działa. W końcu potrafię wyświetlić cokolwiek na ekranie ;]
REKLAMA