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



Teraz jest 21 kwi 2026, o 19:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 25 lip 2016, o 02:02 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

Witam,
Mam taki problem, próbuję napisać sobie w miarę użyteczną bibliotekę do obsługi LCD3310. Aktualnie staram się umożliwić tejże bibliotece przesuwania wyświetlanych obiektów, póki co bez używania warstw i buforów. Podejrzewam, że rozwiązanie problemu jest dość błahe, jednak nie mogę na nie wpaść. Przesuwanie tekstu zrealizowałem na podstawie pomysłu Pana Mirka z poradnika dotyczącego obsługi LCD HD44780, prezentuje się ono następująco:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obrazek jest natomiast wyświetlany w następujący sposób:

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


Z tym, że nie potrafię się uporać z tym by te scrollowanie odbywało się poprawnie - przesuwam tylko 1 z 6 wierszy na które naniesiony jest obrazek, albo wszystko mi się rozchodzi :/

Funkcja, którą początkowo napisałem do scrollowania obiektu na lcd wygląda tak:

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


Działa jednak ona tak jak wyżej wspomniałem - tylko dla jednego wiersza.
Może ma ktoś jakiś pomysł bądź wskazówki jak powinienem to zrobić dla n do 6 wierszy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 14:57 
Offline
Użytkownik

Dołączył(a): 25 lip 2015
Posty: 140
Zbananowany użytkownik

Pomógł: 18

Ta funkcja LCD3310_Image mogła by wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Chociaż to kosmetyka ;)

A co do tej drugiej funkcji, to jest dla mnie jakiś kosmos.
1. Co to za zmienne lcd3310_x, lcd3310_y? Jakiego są typu? Po co sprawdzasz, czy są większe od 0?
2. Po co zmienna zn jest static?
3. Po co w ogóle jest zmienna zn, skoro przy każdym wejściu do funkcji zn = 0, if(!zn) jest zawsze spełniony, itd...
4. Tak mi się wydaje, że brakuje Ci pętli for, która przeiteruje po wszystkich wierszach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 15:46 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

1. Zmienne typu int16, przechowują współrzędne wirtualnego wskaźnika
2,3. Ze względu na to iż ten warunek nie zawsze jest spełniony przy wywołaniu funkcji, zwróć uwage, że LCD3310_Locate jest wywoływane tylko wtedy gdy wskaźnik znajduje się w obszarze LCD - w ten sposób oszczędzam trochę czasu.
4. możliwe



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 19:10 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

żeby móc przesuwać obiekty na LCD musisz definiować obszar roboczy x3 czyli:
ukryty lewa strona , właściwy obraz , ukryty prawa strona
dopiero wtedy gdy zrobisz sobie wirtualne 2 lcd możesz przemieszczać między nimi obraz

np tak:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 19:42 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

Szukając informacji natknąłem się na Twoje demo biblioteki. Wyszło Ci to naprawdę świetnie! :) Czy jest możliwość podzielenia się jej kodem? :) A co do dwóch wirtualnych LCD to myślałem już o tym ale stwierdziłem, że chce zacząć od czegoś prostszego a dopiero potem kombinować z buforami i warstwami, tym bardziej, że te już troszkę zajmują.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 19:59 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

czy ja wiem na TFT wygląda lepiej ... pozatym sporo miejsca zajęła obsługa SIDa który odtwarza muzyczkę :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 20:09 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

Mi się osobiście podoba, poza tym nie wszędzie warto pchać TFT, 3310 jest taniutki a nawet jakoś to wygląda :)



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: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO