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

tablica znaków ASCII dla LCD

21 Wrz 2009 13:40 5776 17
  • Poziom 12  
    Witam.

    Mam wyświetlacz LCD bez trybu tekstowego i właśnie ten tryb chciałbym sobie dorobić na procku. Potrzebuję zatem tablicy znaków - tablicy w której znak opisany jest na 8 bajtach (8x8 bitów). Często takie tablice są dołączone do pdfów od wyświetlaczy LCD ukazujące jak wyglądają znaki w trybie tekstowym.

    Mój problem polega na tym że nie mam chęci samodzielnie przepisywać wartości bajtów do tablicy i mam pytanie czy zrobił już ktoś to za mnie? Czy ma ktoś kod tablicy znaków 8x8 gotowej do zastosowania?

    pozdr
    J
  • Poziom 33  
    master_szumi napisał:

    Mój problem polega na tym że nie mam chęci samodzielnie przepisywać wartości bajtów do tablicy i mam pytanie czy zrobił już ktoś to za mnie?


    Albo to przejęzyczony żarcik sytuacyjny albo kolego masz niezły tupet.
    Mam taką tablicę ale problem polega na tym że nie chce mi się jej tutaj zamieścić.
  • Poziom 12  
    Nie miałem zamiaru nikogo urazić - jeżeli tak się stało to przepraszam.

    Nie chcę też obijać się kosztem czyjejś pracy - po prostu wydawało mi się że taka tablica jest pewnie gdzieś w sieci dostępna, bo mój problem nie wydaje mi się jakiś wyjątkowy. Nie chcę wykonywać zrobionej już rzeczy po raz drugi tylko skorzystać z gotowego i sprawdzonego rozwiązania.

    Jeżeli to możliwe proszę o link lub wrzucenie pliku z taką tablicą (ewentualnie wklejenie jeżeli ma to sens - nie jest zbyt długa).

    pozdrawiam
    J
  • Pomocny post
    Poziom 33  
    Proszę.

    Code:
    // font.h
    
    //
    // Tablica czcionek 5x7
    //
    //#include <avr/pgmspace.h>
    static const char /*PROGMEM*/  font5x8[] = {
    0x00, 0x00, 0x00, 0x00, 0x00,// (spacja)
    0x00, 0x00, 0x5F, 0x00, 0x00,// !
    0x00, 0x07, 0x00, 0x07, 0x00,// "
    0x14, 0x7F, 0x14, 0x7F, 0x14,// #
    0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
    0x23, 0x13, 0x08, 0x64, 0x62,// %
    0x36, 0x49, 0x55, 0x22, 0x50,// &
    0x00, 0x05, 0x03, 0x00, 0x00,// '
    0x00, 0x1C, 0x22, 0x41, 0x00,// (
    0x00, 0x41, 0x22, 0x1C, 0x00,// )
    0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
    0x08, 0x08, 0x3E, 0x08, 0x08,// +
    0x00, 0x50, 0x30, 0x00, 0x00,// ,
    0x08, 0x08, 0x08, 0x08, 0x08,// -
    0x00, 0x30, 0x30, 0x00, 0x00,// .
    0x20, 0x10, 0x08, 0x04, 0x02,// /
    0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
    0x00, 0x42, 0x7F, 0x40, 0x00,// 1
    0x42, 0x61, 0x51, 0x49, 0x46,// 2
    0x21, 0x41, 0x45, 0x4B, 0x31,// 3
    0x18, 0x14, 0x12, 0x7F, 0x10,// 4
    0x27, 0x45, 0x45, 0x45, 0x39,// 5
    0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
    0x01, 0x71, 0x09, 0x05, 0x03,// 7
    0x36, 0x49, 0x49, 0x49, 0x36,// 8
    0x06, 0x49, 0x49, 0x29, 0x1E,// 9
    0x00, 0x36, 0x36, 0x00, 0x00,// :
    0x00, 0x56, 0x36, 0x00, 0x00,// ;
    0x00, 0x08, 0x14, 0x22, 0x41,// <
    0x14, 0x14, 0x14, 0x14, 0x14,// =
    0x41, 0x22, 0x14, 0x08, 0x00,// >
    0x02, 0x01, 0x51, 0x09, 0x06,// ?
    0x32, 0x49, 0x79, 0x41, 0x3E,// @
    0x7E, 0x11, 0x11, 0x11, 0x7E,// A
    0x7F, 0x49, 0x49, 0x49, 0x36,// B
    0x3E, 0x41, 0x41, 0x41, 0x22,// C
    0x7F, 0x41, 0x41, 0x22, 0x1C,// D
    0x7F, 0x49, 0x49, 0x49, 0x41,// E
    0x7F, 0x09, 0x09, 0x01, 0x01,// F
    0x3E, 0x41, 0x41, 0x51, 0x32,// G
    0x7F, 0x08, 0x08, 0x08, 0x7F,// H
    0x00, 0x41, 0x7F, 0x41, 0x00,// I
    0x20, 0x40, 0x41, 0x3F, 0x01,// J
    0x7F, 0x08, 0x14, 0x22, 0x41,// K
    0x7F, 0x40, 0x40, 0x40, 0x40,// L
    0x7F, 0x02, 0x04, 0x02, 0x7F,// M
    0x7F, 0x04, 0x08, 0x10, 0x7F,// N
    0x3E, 0x41, 0x41, 0x41, 0x3E,// O
    0x7F, 0x09, 0x09, 0x09, 0x06,// P
    0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
    0x7F, 0x09, 0x19, 0x29, 0x46,// R
    0x46, 0x49, 0x49, 0x49, 0x31,// S
    0x01, 0x01, 0x7F, 0x01, 0x01,// T
    0x3F, 0x40, 0x40, 0x40, 0x3F,// U
    0x1F, 0x20, 0x40, 0x20, 0x1F,// V
    0x7F, 0x20, 0x18, 0x20, 0x7F,// W
    0x63, 0x14, 0x08, 0x14, 0x63,// X
    0x03, 0x04, 0x78, 0x04, 0x03,// Y
    0x61, 0x51, 0x49, 0x45, 0x43,// Z
    0x00, 0x00, 0x7F, 0x41, 0x41,// [
    0x02, 0x04, 0x08, 0x10, 0x20,// "\"
    0x41, 0x41, 0x7F, 0x00, 0x00,// ]
    0x04, 0x02, 0x01, 0x02, 0x04,// ^
    0x40, 0x40, 0x40, 0x40, 0x40,// _
    0x00, 0x01, 0x02, 0x04, 0x00,// `
    0x20, 0x54, 0x54, 0x54, 0x78,// a
    0x7F, 0x48, 0x44, 0x44, 0x38,// b
    0x38, 0x44, 0x44, 0x44, 0x20,// c
    0x38, 0x44, 0x44, 0x48, 0x7F,// d
    0x38, 0x54, 0x54, 0x54, 0x18,// e
    0x08, 0x7E, 0x09, 0x01, 0x02,// f
    0x08, 0x14, 0x54, 0x54, 0x3C,// g
    0x7F, 0x08, 0x04, 0x04, 0x78,// h
    0x00, 0x44, 0x7D, 0x40, 0x00,// i
    0x20, 0x40, 0x44, 0x3D, 0x00,// j
    0x00, 0x7F, 0x10, 0x28, 0x44,// k
    0x00, 0x41, 0x7F, 0x40, 0x00,// l
    0x7C, 0x04, 0x18, 0x04, 0x78,// m
    0x7C, 0x08, 0x04, 0x04, 0x78,// n
    0x38, 0x44, 0x44, 0x44, 0x38,// o
    0x7C, 0x14, 0x14, 0x14, 0x08,// p
    0x08, 0x14, 0x14, 0x18, 0x7C,// q
    0x7C, 0x08, 0x04, 0x04, 0x08,// r
    0x48, 0x54, 0x54, 0x54, 0x20,// s
    0x04, 0x3F, 0x44, 0x40, 0x20,// t
    0x3C, 0x40, 0x40, 0x20, 0x7C,// u
    0x1C, 0x20, 0x40, 0x20, 0x1C,// v
    0x3C, 0x40, 0x30, 0x40, 0x3C,// w
    0x44, 0x28, 0x10, 0x28, 0x44,// x
    0x0C, 0x50, 0x50, 0x50, 0x3C,// y
    0x44, 0x64, 0x54, 0x4C, 0x44,// z
    0x00, 0x08, 0x36, 0x41, 0x00,// {
    0x00, 0x00, 0x7F, 0x00, 0x00,// |
    0x00, 0x41, 0x36, 0x08, 0x00,// }
    0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
    0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
    };
    //
  • Poziom 14  
    Albo poszukaj na google GLCDFontCreator2 lub cos podobnego :)
  • Poziom 39  
    Prościej. Zainstaluj BASCOM-AVR (nawet DEMO) a tam masz do tego narzędzie: Font Editor. Tylko najpierw włącz go w menu Plugin Manager. Pliki *.font są plikami tekstowymi z danymi.
  • Poziom 33  
    ZbeeGin napisał:
    Prościej. Zainstaluj BASCOM-AVR (nawet DEMO) a tam masz do tego narzędzie: Font Editor. Tylko najpierw włącz go w menu Plugin Manager. Pliki *.font są plikami tekstowymi z danymi.


    No rzeczywiście dużo prościej...
    Chcesz mieć tapetę z XP? Zainstaluj XP, zrób zrzut ekranu i przenieś sobie do Linuxa.
  • Poziom 39  
    markosik20 napisał:
    No rzeczywiście dużo prościej...

    1. BASCOMa można znaleźć w try-miga.
    2. Zainstalować też w try-miga.
    3. Uruchomić Font Editora w try-miga.
    4. Ustawić sobie własny rozmiar czcionki w try-miga.
    5. Narysować znaki - w try-miga z pomocą opcji Suggest.
    6. Zapisać utworzoną czcionkę w try-miga.
    7. Otworzyć normalny edytor tekstu w try-miga.
    8. Przetworzyć tekst:
    Code:
    Font8x8:  (linię usuwamy)
    
    $asm (linię usuwamy)
    .db 1,8,8,0 (linię usuwamy)
    .db 0,0,0,0,0,0,0,0 ; 
    .db 0,0,6,95,6,0,0,0 ; !
    .db 0,7,3,0,7,3,0,0 ; "
    .db 0,36,126,36,126,36,0,0 ; #
    .db 0,36,43,106,18,0,0,0 ; $
    .db 0,99,19,8,100,99,0,0 ; %
    .db 0,54,73,86,32,80,0,0 ; &
    itd.

    za pomocą Znajdź i Zamień w try-miga.
    9. Wkleić do pliku *.C lub *.H w try-miga.
    10. Wykonać "make clean all" w try-miga.

    11. Odinstalować BASCOMa jak komuś przeszkadza w try-miga albo i jeszcze szybciej.
  • Poziom 33  
    O Rany B...
    To ja już wolałbym to narysować ręcznie niż korzystać z tego super narzędzia.
  • Poziom 16  
    Freddie Chopin napisał:
    try-miga * 10 != try-miga

    OT:
    A gdy miga = 0
    ?
  • Poziom 39  
    Try-miga jest wartością nieskończenie małą, zatem każda operacja matematyczna na niej daje wynik try-miga.
    Try-miga+1 = Try-miga
    Try-miga-1 = Try-miga
    Try-miga*X = Try-miga
    Try-miga / X = Try-miga.

    c.b.d.u.

    markosik20 napisał:
    O Rany B...
    To ja już wolałbym to narysować ręcznie niż korzystać z tego super narzędzia.

    Wystarczy skorzystać z pliku font8x8.font.
  • Poziom 33  
    hose2 napisał:
    Freddie Chopin napisał:
    try-miga * 10 != try-miga

    OT:
    A gdy miga = 0
    ?


    To zostaje 10*try
  • Specjalista - Mikrokontrolery
    markosik20 napisał:
    hose2 napisał:
    Freddie Chopin napisał:
    try-miga * 10 != try-miga

    OT:
    A gdy miga = 0
    ?


    To zostaje 10*try

    Lepiej:

    Code:

    try
    {
        miga();
    }
    catch
    {
        too_long();
    }


    <:

    4\/3!!
  • Poziom 12  
    Chciałem złożyć podziękowania dla markosik20'a gdyż tablica bardzo mi się przydała. Niestety nie mogłem wykorzystać jej od razu gdyż musiałem zrobić mirrora na bajtach aby pasowało to do mojego LCD (tak na marginesie czy istnieje instrukcja procesora robiąca mirror bitowy na 4 bitach? tzn: 0b0001 -> 0b1000, 0b0011 -> 0b1100 itd - z ciekawości pytam bo wydaje mi się że nie ma więc to stablicowałem)

    Jedyna rzecz która by mi się przydała to jeszcze tablica polskich (ogonkowych) znaków - jeżeli ktoś ma ją w takiej postaci jak ta powyższa to może się podzieli :)


    pozdrawiam
    J
  • Poziom 33  
    master_szumi napisał:
    tak na marginesie czy istnieje instrukcja procesora robiąca mirror bitowy na 4 bitach? tzn: 0b0001 -> 0b1000, 0b0011 -> 0b1100 itd


    Dla jakiego procesora?
  • Poziom 12  
    Pytanie było ogólne czy w ogóle dla jakiegoś procesora taka instrukcja jest?

    Ja obecnie używam LPC21xx z rodziny ARM7.
  • Specjalista - Mikrokontrolery
    Dla ARM7 nie ma, dla architektur obsługujących Thumb-2 jest instrukcja RBIT, która odwraca bity w słowie.

    4\/3!!