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

Atmega8 - Jak poprawnie wyświetlić zmienną na LCD z biblioteką HD4470?

Grzegorzm2121 04 Cze 2015 21:55 654 4
REKLAMA
  • #1 14745912
    Grzegorzm2121
    Poziom 15  
    Posty: 250
    Pomógł: 16
    Postanowiłem ostatnio użyć mojej skromnej wiedzy (głównie kopiowanie programów z internetu i ustawianie pinów) do zrobienia prostego programu.

    Chcę aby mikrokontroler zmieniał zmienną x tak aby przycisk 1 zwiększał ją a przycisk 2 ją zmiejszał. Wszystko ma być przedstawione na LCD z bibloteką HD4470. Wyświetlacz działa (bo testowałem z tym programem:

    http://mikrokontrolery.blogspot.com/2011/03/adc-prezentacja-wyniku-na-lcd.html

    Problem pojawia się gdy chcę wyświetlić zmienną. Normalne napisy typu:
    LCD_WriteText("Tekst"); działają ale gdy mam tak
    char x = 10;
    LCD_WriteText(x); to wyświetla mi krzaczki.
    Pomóżcie.
    PS. Nie mam ,żadnej książki do nauki C bo ograniczają mnie koszty a na internecie poradniki są mierne.
  • REKLAMA
  • #2 14745936
    lis6502
    Poziom 17  
    Posty: 276
    Pomógł: 18
    Ocena: 31
    Strzelam: musisz zmienić typ zmiennej z int'a na chara. Nie wiem w czym programujesz, ale strona wyczerpuje temat dla C.
    Dla BASIC'a byłoby to coś w styl
    Kod: Text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 14746454
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Grzegorzm2121 napisał:
    Wyświetlacz działa (bo testowałem z tym programem: http://mikrokontrolery.blogspot.com/2011/03/adc-prezentacja-wyniku-na-lcd.html

    Problem pojawia się gdy chcę wyświetlić zmienną. Normalne napisy typu:
    LCD_WriteText("Tekst"); działają ale gdy mam tak
    char x = 10;
    LCD_WriteText(x); to wyświetla mi krzaczki.

    Przyglądnij się artykułowi, który wskazałeś i zauważ takie linie kodu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Innymi słowy, by wyświetlić najpierw funkcją itao() Twoja liczba znajdująca się w zmiennej (w przykładzie powyżej zamiast zmiennej jest rejestr ADC) zamieniana jest na znaki ASCII, które umieszczane są w tablicy bufora wyświetlacza, a dopiero później bufor jest wyświetlany. Istotne jest by bufor miał o jeden znak więcej niż maksymalna ilość cyfr do wyświetlenia, bo musi przechowywać także znak końca tekstu.

    Podobnie jest z funkcjami rodziny printf: http://mikrokontrolery.blogspot.com/2011/02/kurs-jezyka-c-spis-tresci.html

    Przykład znajdziesz w tym samym artykule, który wskazałeś. Tylko dokładnie przeczytaj artykuł, bo jest tam sporo istotnych informacji w zakresie printf.
  • REKLAMA
  • #4 14747133
    Grzegorzm2121
    Poziom 15  
    Posty: 250
    Pomógł: 16
    Dzięki wyświetlacz działa. Potrzebuję jeszcze porady w moim programie:


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Chciałbym aby na wyświetlaczu cyfry były wyświetlane jak w prawdziwym minutniku czyli 01:01:01 aby wyświetlacz wyświetlał liczby jednocyfrowe z zerem z przodu i z znakami pomiędzy zmiennymi.
REKLAMA