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

Jak wyświetlać zmienne i mapy bitowe w bibliotekach Radzia do T6963C?

DarkMajster 29 Lip 2017 17:59 1038 7
  • #1 16615148
    DarkMajster
    Poziom 11  
    Witam, mam pytanie co do bibliotek pana Radzia do T6963C (http://en.radzio.dxp.pl/t6963/) mianowicie:
    w jaki sposób powinienem wyświetlać zawartość zmiennej?

    Oraz czy mógłby mi ktoś pomóc jak wyświetlać mapę bitową? przykładowo
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    obrazek bmp 240x64 przepuszczony przez LCDAssistant od pana Radzia, 128 bitów x 120 rzędów, co raczej nijak ma się do proporcji ekranu :D Czym w sumie jest taki plik? Za które pixele odpowiadają odpowiednie bity? Może mi ktoś to wytłumaczyć?
  • #2 16615762
    pimpuk
    Poziom 23  
    No przecież na stronie, której podałeś, jest napisane jak wyświetlać tekst.
  • #3 16615777
    kamyczek
    Poziom 38  
    Ilość znaków w wierszu nie ma znaczenia na końcu masz przecinek więc traktuj to jak kolejne wartości wysyłane do lcd . 240*64 =15360 tyle pixeli (punktów ma wyświetlacz) 120*128 to dokładnie tyle samo w czym masz problem ? To jest kawałek pamięci flash o długości 1920 bajtów czyli 15360/8 nie musi być formatowany ma mieć tylko 1920 bajtów wysyłanych kolejno i tyle. Dla własnej wygody możesz pisać taką liczbę znaków jaka się mieści w linijce wyświetlacza w następnej linii kontynuować tylko zastanów się jak umieścisz w jednej linii 240 bajtów i będziesz miał tych linijek 8 to jakie będą długie ???
  • #4 16617338
    DarkMajster
    Poziom 11  
    Czyli 1 bajt to osiem pixeli po lewej u góry, tak jak na obrazku?
    Jak wyświetlać zmienne i mapy bitowe w bibliotekach Radzia do T6963C?
    I jeszcze pytanie, jeżeli w programie ustawie 1 pixel/bajt to otrzymam "ciut" dłuższą tablicę, w której znajdę bajty takie jak 0x30 (= 0b00110000), 0x78 (=0b01111000) etc, skąd one sie biorą? jeżeli jest 1 pixel na bajt, to moim zdaniem, powinny tu być tylko 0x00 oraz 0x01.
  • #5 16617361
    kamyczek
    Poziom 38  
    Każdy bajt to pionowy słupek z 8 pikseli liczba bajtów zawsze mysi być taka sama (1920) chcąc zapalić piksel musisz do konkretnego bajtu dodać jego wagę 1,2,4,8,16,32,64,128 chcąc zgasić zapalony odejmujesz jego wagę (wartość) bajtów zawsze ma być 1920 .
  • #6 16617909
    DarkMajster
    Poziom 11  
    eksperymentalnie sprawdzając, nie masz racji, tak by było gdybym wybrał Vertical, dla T6963 twórca karze wybrać Horizontal, i tutaj jest jak ja mówiłem jednek
  • #7 16618158
    kamyczek
    Poziom 38  
    Możliwe że tak jest wyświetlacze często pozwalają na różne sposoby wypełniania . Dla obrazka może i wygodniej jest zrobić tak jak piszesz jednak dla wyświetlaczy bez tablicy znaków dużo łatwiej jest umieszczać te bajty w pionowych słupkach . Tak czy inaczej liczba bajtów ma być zawsze taka sama jedyne co masz zmieniać to wartość odpowiedniego z nich . Ja nie korzystam z gotowych bibliotek bo są bardzo często wolne i nieoptymalne do wielu zastosowań . Wolę je pisać samodzielnie i optymalizować pod kątem własnych zastosowań i wymagań . Poza tym jeśli masz opis autora biblioteki korzystaj z niego bo to najlepsze źródło informacji na jej temat.
  • #8 16618171
    DarkMajster
    Poziom 11  
    przeglądając T6963C.c znalazłem void GLCD_Bitmap, wcześniej nie widziałem, bo tylko patrzyłem w T6963C.h, gdzie widniały tylko

    void GLCD_InitalizeInterface(void);
    unsigned char GLCD_ChceckStatus(void);
    void GLCD_WriteCommand(unsigned char);
    void GLCD_WriteData(unsigned char);
    unsigned char GLCD_ReadData(void);
    void GLCD_ClearText(void);
    void GLCD_ClearCG(void);
    void GLCD_ClearGraphic(void);
    void GLCD_WriteChar(char ch);
    void GLCD_WriteString(char * str);
    void GLCD_WriteStringPgm(prog_char * str);
    void GLCD_TextGoTo(unsigned char, unsigned char);
    void GLCD_DefineCharacter(unsigned char, unsigned char *);
    void GLCD_Initalize(void);
    void GLCD_SetPixel(unsigned char, unsigned char, unsigned char);
    void GLCD_WriteDisplayData(unsigned char);

    czyżby autor zapomniał o tym?

    Funkcja wygląda tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Czy użycie GLCD_Bitmap(mapa,0,0,240,64);
    do mojej bitmapy jest poprawne? (bo chyba nie bardzo :V)
    Jak wyświetlać zmienne i mapy bitowe w bibliotekach Radzia do T6963C?

    edit:
    rozwiązałem to tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA