Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 lis 2024, o 04:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 24 sie 2014, o 20:42 
Offline
Nowy

Dołączył(a): 07 sie 2014
Posty: 6
Pomógł: 1

Witam

Już myślałem, że sobie poradzę, ale stanąłem wobec dziwnego problemu.

Ale od początku. Piszę obsługę tekstów na LCD graficznym UC1601. Wiadomo, że nie ma on niestety generatora znaków, no to dłubie to pisanie :D

Mam tablicę znaków o zmiennej szerokości i tablicę szerokości i przesunięcia:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i fragment Czcionka_Info:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Do tego procedura wyświetlania znaku:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I wszystko pięknie działa, do momentu, aż nie próbuję wyświetlić litery "n". Zaczynają się wyświetlać krzaki.
Sądzę, że problemem jest wartość liczbowa offsetu w tablicy opisu czcionki. Dla litery "n" przyjmuje ona wartość 259 (>255). I to stanowi problem.

Co z tym fantem zrobić? Skąd to ograniczenie do 8 bitów?

pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2014, o 20:50 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27309
Lokalizacja: Szczecin
Pomógł: 1041

źle spojrzałem poprzednio ...

przecież offset masz 16-bitowy

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2014, o 21:32 
Offline
Nowy

Dołączył(a): 07 sie 2014
Posty: 6
Pomógł: 1

mirekk36 napisał(a):
źle spojrzałem poprzednio ...

przecież offset masz 16-bitowy


No i już widzę, gdzie jest problem.

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wstawiłem sobie w procedurę wyświetlanie offsetu, no i się rypło.

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To odczytuje tylko pojedynczy bajt, a w bajcie mamy tylko 8-bitów :D Czyli powyżej 255 nie wyskoczymy. I faktycznie tak jest. Reszta działa. Siłowo ustawiony offset na 259 wywołuje piękną literę "n" :)

Wystarczyło zmienić jedną linijkę na:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i wszystko działa.

Czasami, to naprawdę człowiek przenosi góry, a potyka się o przecinek :D

dzięki i pozdrawiam


PS. Mirekk36, czy program PixelFactory może generować fonty kolumnami od LSB? Bo takiej funkcji nie znalazłem i dla UC1601 jest mało przydatny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO