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

[ATMEGA8] - Nieprawidłowe linkowanie bibliotek vprintf, m i printf_flt

Noisy_daddy 31 Paź 2014 19:54 1068 7
  • #1 14090736
    Noisy_daddy
    Poziom 14  
    Mam problem z linkowaniem wymienionych bibliotek. Używam atmel studio 6 na windowsie xp. O ile w general jest checkbox "use vprintf library (-Wl,-u,vprintf)" to resztę wpisałem w AVR/GNU Linker ->Libraries, tzn m i printf_flt. Wszystkie komendy linkera wyglądają więc tak: -Wl,-Map="$OutputFileName).map" -Wl,-u,vfprintf -Wl,--startgroup -Wl,-lm -Wl,--end group -mmcu=atmega8a.

    Program który piszę na wyświetlać wartości zmiennych typu float na ekranie wyświetlacza LCD, jednak wyświetla tylko czarne kwadraty na każdym znaku. Z programem jest wszystko w porządku, bo wgrywając z innego komputera działa tak jak powinno. Nie jest to też problem programatora, bo inne układy mogę nim programować. Jakieś pomysły o co może chodzić? Z góry dziękuję :D
  • #2 14094729
    Konto nie istnieje
    Konto nie istnieje  
  • #3 14094744
    Noisy_daddy
    Poziom 14  
    Sprawdzając też miałem nadzieję, że inkludowałem. I na szczęście jest :D
    Mam #include <stdio.h>, Może "stdio.h" powinno być czy to nie ma znaczenia? Jest dodatkowo też to avr'owe <avr/io.h>, ale to zupełnie inny nagłówek prawda? To niby dołącza środowisko automatycznie ale też np. w niektórych mam slash w niektórych backslash. np jest "avvr/io.h" i "avr/interrupt.h" ale "utils\delay.h". Pewnie nie chodzio żadną z tych rzeczy, ale piszę na wszelki wypadek wszystko co mi przychodzi do głowy, bo już jakiś czas się bawię z tym problemem. W każdym razie stdio jest zainkludowane. inttypes.h też mam zainkludowane i z tego co pamiętam (jakiś czas temu już to było) to sprawiło, że program zaczął działać na tamtym drugim kompie
  • #4 14094864
    Konto nie istnieje
    Konto nie istnieje  
  • #5 14094946
    Noisy_daddy
    Poziom 14  
    Nie ma nic w outpucie nt. bibliotek. Są tylko warningi "deprecated convesion from string constant to 'char*' [-Wwrite-strings]" w miejsach gdzie wyświetlam:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    A to są wszystkie inkludy:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Wyświetlam na lcd albo jawnie napisy tak jak powyżej albo wartości zmiennej typu float przekonwertowane na tablicę char przy pomocy "sprintf".
  • #6 14094994
    Konto nie istnieje
    Konto nie istnieje  
  • #7 14095710
    dondu
    Moderator na urlopie...
    Noisy_daddy napisał:
    Program który piszę na wyświetlać wartości zmiennych typu float na ekranie wyświetlacza LCD, jednak wyświetla tylko czarne kwadraty na każdym znaku. Z programem jest wszystko w porządku, bo wgrywając z innego komputera działa tak jak powinno.

    Na jakiej podstawie piszesz, że z programem jest wszystko OK skoro:

    Noisy_daddy napisał:
    Są tylko warningi "deprecated convesion from string constant to 'char*' [-Wwrite-strings]" w miejsach gdzie wyświetlam:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Lektura punktu nr 10.

    Skąd masz tę bibliotekę LCD?
  • #8 14096335
    Noisy_daddy
    Poziom 14  
    Cytat:
    Na jakiej podstawie piszesz, że z programem jest wszystko OK

    Na takiej że zaprogramowałem układ i działa tak jak chciałem, proste :D Ale fakt, niesłusznie zignorowałem warningi. O dziwo, po "cleanie" warningów już nie ma (choć daję głowę że niejednego już wcześniej robiłem). Jakiś postęp jest, bo wyświetlane są znaki, tylko nie te co trzeba :D wygląda to np. tak:

    [ATMEGA8] - Nieprawidłowe linkowanie bibliotek vprintf, m i printf_flt

    Więc jakieś problemy z kodowaniem jak na moje oko,nie wiem...
    A bliblioteka jest ze strony kamami: http://www.kamami.pl/index.php?productID=46782
    Wyświetlacz w moim układzie również od kamami: http://www.kamami.pl/index.php?ukey=search
REKLAMA