Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

wyświetlanie float na lcd -

gorgus4545 09 Lis 2015 19:38 1134 11
  • #1 09 Lis 2015 19:38
    gorgus4545
    Poziom 4  

    Witam od kilku dni siedzenia i czytania, bez żadnych zmian końcowych.
    Chodzi mi o to że mam moduł kompasu hmc5883l podłączonego pod atmege32.
    Chciałbym aby procek podawał mi na wyświetlacz współrzędne obecnego położenia w jakim się znajduje, urodziłem jakiś kod ale wyświetlacz nie wyświetla mi zmiennej float( czytałem o użyciach różnych funkcji itd ale bez skutku) Stąd piszę o pomoc bardziej doświadczonych ludzi, proszę bez linczu programuje od niedawna i nie wszystko mi wychodzi. Avr Studio 4, Atmega32A, moduł magnetometru hmc5883l lcd16x2. Jak widać kombinowałem coś ze sprintf ale efektu nie przynosi.


    Główny kod programu, nie wiem na ile on spełni moje oczekiwania, znalazłem go gdzieś i wydaje mi się że powinien hulać, sęk w tym że na wyświetlaczu nie mam nic.

    Kod: C
    Zaloguj się, aby zobaczyć kod

    0 11
  • #2 09 Lis 2015 19:52
    BlueDraco
    Specjalista - Mikrokontrolery

    Nie widzę w tym programie fragmentu który miałby wyświetlać wartość jakiejkolwiek danej zmiennopozycyjnej.

    0
  • #3 09 Lis 2015 19:55
    gorgus4545
    Poziom 4  

    No z tego co mnie się wydawało miało w tym celu pomóc mi sprintf które zrobi mi konwersje float na char (nie wiem czy dobrze to robię) a potem wartość tej zmiennej wyświetlę na lcd komendami praktycznie na samym dole kodu

    0
  • #4 09 Lis 2015 20:12
    BlueDraco
    Specjalista - Mikrokontrolery

    sprintf z formatem %f rzeczywiście powinien zrobić taką konwersję, ale nigdzie nie wyświetlasz tekstu będącego jej wynikiem.

    0
  • #5 09 Lis 2015 20:21
    gorgus4545
    Poziom 4  

    Nie wiem czy dobrze rozumiem ale konstrukcja sprintf(I,II,III) mówi że zapisz do zmiennej na I pozycji w postaci takiej jak w II pozycji to co podaje w III, stąd nie dokońca wiem jak można to inaczej zapisać, masz na myśli żebym kowersje przypisał jakiejś innej zmiennej char i wtedy tą zmienną wyświatlał w LCD_WriteText("nowa_zmienna_char"), bo do tej pory wartość konwersji char( o ile dobrze rozumiem, to ta z I pozycji) wyświetlam poleceniem LCD_WriteText("katy");

    0
  • #6 09 Lis 2015 20:36
    tmf
    Moderator Mikrokontrolery Projektowanie
  • #7 09 Lis 2015 20:42
    gorgus4545
    Poziom 4  

    Kod: C
    Zaloguj się, aby zobaczyć kod


    a to nie powinno mi wyświetlić tegoż łańcucha?

    0
  • #8 09 Lis 2015 20:50
    2rs232
    Poziom 17  

    To powinno dać napis katy

    Kod: c
    Zaloguj się, aby zobaczyć kod


    a to wyświetlić to co umieściła w tablicy funkcja sprintf (po zastosowaniu się do rad z linka, którego dał TMF)
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #9 09 Lis 2015 20:52
    gorgus4545
    Poziom 4  

    poza tym po tych zmianach co podałeś w linku dostaje błędem po głowie

    c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: cannot find -l\libm

    bo nie wiem czy z dobrego miejsca wziąłem te biblioteki bo wziąłem je z WinAvr i tu jest ta cała martwica, bo nie wiem skąd je wziąć gdzie indziej ich nie ma

    0
  • #10 09 Lis 2015 21:44
    tmf
    Moderator Mikrokontrolery Projektowanie

    Napisz z jakiego IDE korzystasz i opisz co robisz. Bo do tej pory opis problemu jaki podałeś jest bardzo chaotyczny. Na podanej stronie masz wszystkie potrzebne informacje, przeczytaj je ze zrozumieniem, a nie wklepuj gdzie popadnie co ci przyjdzie do głowy... A najlepiej ściągnij Atmel Studio (6.2), wraz z nim zainstaluje się nowsza wersja gcc i narzędzi - używasz wersji sprzed 5 lat!~To nie powoduje twoich problemów, lecz przy okazji warto się przerzucić na coś nowszego.

    0
  • #11 09 Lis 2015 21:49
    gorgus4545
    Poziom 4  

    Nie jestem tak doświadczony żeby napisać to inaczej, nie klepie wszystkiego gdzie popadnie, informacje ze strony czytałem. Dowiedziałem się, że mam tam dodać biblioteki. Zauważyłem że na zdjęciach są one w Available Link Object i potem trzeba je dodać do Link with these Object, sęk w tym że ja w Available Link Object nie mam nic, stąd pewnie i problemy. Dlatego próbowałem je dodać z katalogów WinAvr bo tylko tam znalazłem takie samo nazewnictwo jak na stronie podano...
    Korzystam z Avr Studio 4

    0
  • #12 10 Lis 2015 00:22
    2675900
    Użytkownik usunął konto