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

Jak wyświetlać cyrylicę na LCD w Bascom bez zmiany całego programu?

alnus 04 Mar 2009 16:07 7878 30
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak w Bascomie wpisywać cyrylicę do wyświetlania na LCD bez przepisywania całego programu i bez ręcznej zamiany wszystkich tekstów na CHR()?

Nie da się tak ustawić Bascoma ani klawiatury Windows, żeby wpisane ALT+xxx automatycznie odpowiadało kodom znaków z generatora LCD — kody w PC i w LCD są różne, bo font siedzi w CGROM kontrolera wyświetlacza [#6236211][#6246554] Jeśli LCD ma cyrylicę, trzeba użyć jego własnej tabeli kodów z datasheeta i wyświetlać odpowiednie bajty/znaki z tej tabeli, np. przez `LCD Chr(...)` albo wpisywanie odpowiedników z tabeli [#6236206][#6243080] Najwygodniejsze rozwiązanie to zrobić własną małą procedurę albo konwerter, który zamieni znaki z edytora/PC na kody LCD przed kompilacją lub w czasie działania programu [#6239211][#626?]. W praktyce można też po prostu wklepywać do Bascoma „krzaki” odpowiadające kodom powyżej 127, ale musi to być dokładnie ta mapa znaków, którą ma Twój LCD, nie mapa Windows [#6242975][#6243201] Autor wątku ostatecznie zrobił własną tabelę konwersji i potwierdził, że jego wyświetlacz ma niestandardową tablicę znaków, inną niż europejska wersja sterownika [#6242048][#6247307]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 6235306
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    W jaki sposób ustawić Bascoma, żeby dało się bezpośrednio pisać teksty do wyświetlania LCD (sterownik z rosyjskimi znakami) cyrylicą?
    Mam w działającym programie tabelę z nazwami dni tygodnia do kalendarza i musiałbym zmienić sporo programu, żeby dało się wyświetlac za pomocą CHR(*). Zmiana klawiatury w windows na cyrylicę powoduje wypisywanie różnych "ogonków", tylko niestety nie są to bukwy. Jest jakiś sposób, czy muszę napisać program od nowa? A może mam wpisywać te "ogonki" i zobaczyć co będzie wyświetlał po kompilacji? Miał ktoś już z tym jakieś doświadczenia? Jutro muszę z tym powalczyć i każda rada się liczy :D
  • REKLAMA
  • #2 6235360
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Jeśli mowa o LCD alfanumerycznym na sterowniku HD... t te LCD'eki mają wbudowany generator znaków, który nijak nie zależy od Bascoma (podobnie w niektórych graficznych np Toshiba). Musisz wyposażyć się w LCD z cyrylicą, lub bawić się w ciągłe definiowanie znaków.
  • #3 6235493
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Jak napisałem wcześniej LCD jest wyposażony w cyrylicę. Problemem jest jak tą cyrylicę wpisac do programu bezpośrednio z klawiatury.
  • #4 6236206
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    Wystawiaj na wyświetlacz zmienne lub stałe.
    np. x1=1000010 to powinno być duże Ż rosyjskie.
    LCD x1
    Znaki cyrylicy są w wyświetlaczu.
    Młodszy półbajt 0000 do 1111 a starszy 1000 i 1001
  • REKLAMA
  • Pomocny post
    #5 6236211
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    alnus napisał:
    Jak napisałem wcześniej LCD jest wyposażony w cyrylicę. Problemem jest jak tą cyrylicę wpisac do programu bezpośrednio z klawiatury.


    a co ma wspólnego cyrylica wpisywana z klawiatury z tą cyrylicą w LCD ???

    otóż nie ma nic wspólnego poza tym, że mowa o znakach cyrylicy. Nawet jeśli już być miał możliwość pisania jak to mówisz bukw na PC to ich kody (kody znaków) będą różne od tych zwartych w EPROMie LCD'ka - aż tak dooobrze to nie ma . Prosta rzecz - sprawdź sobie kody znaków w CGRAM swojego LCD-ka - a następnie porównaj je z kodami tych samych znaków w kompie. Wątpię żeby się zdarzył LCD który będzie miał tak samo zakodowane te znaki jak w PC
  • #6 6238622
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Chodziło mi właśnie o to , czy uda się ustawić Bascoma (i/lub klawiaturę w PC) w tem sposób, aby kody znaków cyrylicy z klawiatury zgadzały się z tymi z LCD. Na pomysł wpisywania w programie krzaczków które mają kody odpowiadające kodom liter cyrylicy już wpadłem, ale zastanawiałem się czy nie ma prostszego i bardziej "czytelnego" sposobu.
  • #7 6239211
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2823
    Wszystko się da zrobić kolego. Można np. napisać sobie małą procedurkę która będzie tłumaczyć kody z klawiatury na kody displaya.
    Coś w stylu:
    
    wypisz("електрод")
    .
    .
    .
    sub wypisz(aa byval as string)
    dim bb string
    ' tłumaczenie ciągu  aa  na bb
    lcd bb
    end sub
    

    Oczywiście należy napisać własną procedurkę tłumaczenia, deklaracje zmiennych itd.
  • REKLAMA
  • #8 6239261
    Konto nie istnieje
    Poziom 1  
  • #9 6239479
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Wydaje mi się, że pisanie konwertera to w moim przypadku strzelanie z armaty do komara. Większość tekstów udaje mi się wyświetlić za opmocą Chr(numer litery z generatora). Problemem jest tylko tablica z nazwami dni tygodnia, które są pobierane jako string i wyświetlane. Robiłem próby z wpisywaniem do programu literek za pomocą lewy alt + numer, ale sukces jest połowiczny. Pojawiają się co prawda "bukwy" na wyświetlaczu ( w programie oczywiście jakieś krzaki), ale nie są to zawsze "bukwy" i niekoniecznie te co trzeba. W LCD są one ukryte od nr160 do około 230. Czy da się jakoś ustawić bascoma i/lub windowsa, żeby wpisując "lewy alt+nr kodu" uzyskać na LCD literę o tym numerze? Nie musi to już wyglądać - byle działało ;)
  • #10 6239514
    Konto nie istnieje
    Poziom 1  
  • #11 6239651
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Może z innej beczki: Do czego służy "Keymapping" w zakładce "Environment" "Editor" w ustawieniach Bascoma?
    Do wyboru jest Default, Classic, Brief i Epsilon - może to coś komuś mówi ?
  • #12 6240046
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 71
    Do takich egzotycznych kodów ASCII proponowałbym wpisywanie przez ALT+xxx jeśli są to pojedyncze znaki
    i prosty programik na PC do translacji znaków na kody dla LCD (i z powrotem).
    W samym BASCOMIE będą krzaki, ale będzie je można skopiować do programiku i sprawdzić.
  • #13 6240290
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Właśnie wpisuję przez ALT +xxx, tylko xxx na wyświetlaczu jest inne niż w Bascomie. Wiem jakie powinno być w wyświetlaczu, ale nie mam pojęcia jakie jest w Bascomie. Kolega atom1477 wypisał mi krzaczki, które mają odpowiadać kodom ASCI powyżej 127, ale nie potrafię ich po prostu wpisać do programu z klawiatury. qrdel- po co ten programik na PC do translacji? Ja tylko potrzebuję informacji jakimi kodami posługuje się Bascom, czy zależy to od ustawień klawiatury w windows i czy można tak wszystko poustawiać, żeby owe ALT+xxx kompilowało się jako numer xxx w generatorze wyświetlacza. To co mi się wyświetli w programie nie ma znaczenia.
  • #14 6241484
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 71
    Gdyby było konieczne wpisanie dłuższych tekstów, powiedzmy instrukcji czy helpów, to jak sądzę wygodniej jest wpisać je z ruskiej klawiatury niż cyzelować znak po znaku.
    Podobnie przy poprawianiu nieczytelnych krzaków, można je skopiować do translatora, zobaczyć w ładnej cyrylicy, poprawić, przełożyć i skopiować do listingu.
    Gdyby mój program zawierał powyżej 100 znaków cyrylicy to tak bym zrobił.
  • #15 6242048
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Z problemem poradziłem sobie "na piechotę", wypisując w programie po kolei ALT + wartości od 128 do 255 i porównując to potem z wynikiem na LCD. Próbowałem szukać i wpisywać krzaczki od kolegi atoma, ale było to zajęcie tyleż czasochłonne, co nie przynoszące rezultatów. Kolejność i znaczki były i tak inne. Jest już po fakcie(chociaż zostało mi parę nieodkrytych literek), ale dalej nie daje mi to spokoju, czy aby nie mogłem sobie wydrukować jakiejś tabeli z kodami, porównać jej z tabelką z LCD i wpisać pasujące numery? Qrdel, pisząc swój programik, skąd wziąłbyś informację o tym które kody są jak kompilowane?
  • REKLAMA
  • Pomocny post
    #16 6242975
    Konto nie istnieje
    Poziom 1  
  • #17 6243046
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Być może w pierwszej fazie byłoby szybciej, ale trzeba by było z nich korzystać wyłącznie na zasadzie "kopiuj/wklej", co już takie szybkie nie jest. O innej kolejności i części innych znaczków już wspominałem. Wpisując mozolnie po kolei znaczki za pomocą ALT+numer stworzyłem sobie tabelkę do konwersji. Łatwą w późniejszym użyciu, bo łatwiej jest mi wpisać numer niż porównywać który to daszek z "a" pasuje mi do litery. W każdym razie dzięki za pomoc. I ponawiam pytanie - skąd odczytać sposób kodowania tabeli znaków nie sprawdzając tego empirycznie?
  • #18 6243080
    Konto nie istnieje
    Poziom 1  
  • #19 6243201
    qrdel
    Poziom 28  
    Posty: 1074
    Pomógł: 100
    Ocena: 71
    Wywaliłbym całe ASCII (porcjami po 16 albo po 8 ) na LCD i spisał na kartce (jeden raz).
  • #20 6244335
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Wydawało mi się, że już pisałem, że znam kody znaków w LCD z datasheeta i nie mam najmniejszych problemów wyświetlania ich za pomocą instrukcji "LCD Chr (nr z tabeli kodów)." Skąd dowiedzieć się w jaki sposób koduje windows i bascom razem wzięte? Myślałem, że wpisując do programu literki za pomocą ALT + nr kodu z LCD mam załatwioną sprawę. Myliłem się sromotnie. Załatwiłem sprawę metodą qrdela, tyle że porcjami po 20 znaków, bo LCD w aplikacji jest 4x20. Usiłuję się po prostu dowiedzieć jak działa Bascom.
  • #21 6244518
    Konto nie istnieje
    Poziom 1  
  • #22 6244719
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    No niestety tak właśnie jest. Daje zupełnie inny znak. Gdyby było tak łatwo, to nie pisałbym już tutaj i nie robił problemów.
  • #23 6244954
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2823
    A spróbuj z ciekawości dać
    Lcd "електрод" 
    i powiedz nam co wyświetliło.
    Wiesz co nikt z nas nie przypuszczał, że bascom coś kombinuje ze znakami
  • #24 6245307
    Konto nie istnieje
    Poziom 1  
  • #25 6246515
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Próbowałem najpierw wklejać cyrylicę napisaną w WordPadzie, bo w samym Bascomie - zresztą w notatniku też - cyrylica się nie wyświetla, mimo przełączenia klawiatury (dla informacji win98). Po kompilacji zdarzały się na LCD jakieś bukwy wymieszane z krzakami, ale napewno nie te które były wpisane wcześniej. Teraz nie mam jak wkleić, bo Bascoma mam w warsztacie na komputerze bez internetu. Cały bajzel jest ze znakami o kodach powyżej 127 ( choć nie sprawdzałem wszystkich poniżej ). Całkiem możliwe, że siedzi tam już jakiś translator Unicode na ASCII i utrudnia życie, tylko fajnie by było znaleźć jakąś możliwość takiego poustawiania programów, żeby zgadzały się chociaż same numery. Próbowałem z różnym ustawieniem Keymapping w Bascomie, ale nic to nie zmieniało.Nawet nie wiem tak naprawdę do czego to służy.
  • #26 6246554
    Konto nie istnieje
    Poziom 1  
  • #27 6247011
    Konto nie istnieje
    Poziom 1  
  • #28 6247307
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    emarcus, zanim coś napiszesz - przeczytaj wcześniejsze posty.
    Teraz już mam własną tabelę konwersji i z wyjątkiem nieczytelności programu wszystko skończyło się OK. Przy okazji okazało się, że moj LCD ma tablicę znaków "custom", inną od europejskiej wersji sterownika. Bukwy ładniejsze, i wszystkie, ale adresy pokrywają się drugą stroną sterownika japońskiego, a nie są "pomiędzy" (jak pisał janbernat)
  • #29 6248387
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    To przepraszam za "wpuszczenie w maliny".
    Na moim było jak napisałem.
  • #30 6251125
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    Bo w standardowym LCD ze sterownikiem w wersji europejskiej faktycznie tam są.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemu wyświetlania znaków cyrylicy na alfanumerycznym wyświetlaczu LCD sterowanym przez Bascom bez konieczności gruntownej zmiany programu. Standardowe wyświetlacze LCD z kontrolerem HD44780 mają wbudowany generator znaków (CGROM), który definiuje zestaw znaków niezależnie od Bascoma i systemu operacyjnego. Cyrylica w LCD jest kodowana inaczej niż w systemach Windows czy w Unicode, co powoduje rozbieżności przy bezpośrednim wpisywaniu znaków z klawiatury (np. przez ALT+kod). W efekcie znaki wpisywane w Bascomie nie odpowiadają kodom znaków w pamięci LCD, co wymaga stosowania translacji kodów.

Proponowane rozwiązania obejmują:
- ręczne definiowanie znaków w programie za pomocą funkcji Chr(numer) odpowiadających kodom w CGROM LCD,
- stworzenie procedury tłumaczącej kody znaków z klawiatury na kody LCD,
- przygotowanie zewnętrznego konwertera na PC, który zamienia tekst z cyrylicą na odpowiednie kody znaków LCD przed kompilacją,
- wpisywanie znaków przez ALT+numery kodów odpowiadających kodom LCD, choć jest to czasochłonne i wymaga empirycznego dopasowania,
- wykorzystanie tabeli kodów znaków z datasheetu LCD do mapowania znaków.

Dyskutowano także o ograniczeniach Bascoma i Windows w obsłudze znaków powyżej 127, gdzie Bascom przyjmuje głównie ASCII, a Windows operuje na Unicode, co komplikuje bezpośrednie wprowadzanie cyrylicy. Ustawienia "Keymapping" w Bascomie nie wpływają na kodowanie znaków cyrylicy. W praktyce najlepszym rozwiązaniem jest przygotowanie własnej tabeli konwersji i stosowanie translacji znaków w programie lub na etapie przygotowania kodu źródłowego. Wskazano, że rodzaj czcionki i zestaw znaków w LCD zależy od kontrolera (np. HD44780) i wersji CGROM (np. Code A00, A02), co determinuje dostępność i kodowanie cyrylicy.

Podsumowując, bez zmiany całego programu można wyświetlać cyrylicę na LCD w Bascomie poprzez zastosowanie translacji kodów znaków, ręczne wpisywanie kodów z tabeli CGROM LCD lub użycie zewnętrznego konwertera tekstu, gdyż bezpośrednie wpisywanie cyrylicy z klawiatury nie jest kompatybilne z kodowaniem LCD i Bascoma.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA