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



Teraz jest 27 gru 2025, o 21:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 4 lut 2014, o 20:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Musiałem się jeszcze ostatnio nieco pobawić BASCOM'em, a poniżej efekt moich rozmyślań ;)



Ciekawe ile osób się domyśli co to jest i jakie to daje możliwości :D Zapewniam, że kod jest prościutki i malutki, a po bliższym zapoznaniu można zapomnieć o standardowych komendach dla LCD. Pomijam już fakt animacji na innym tekście, ale koniec ze stosowaniem spacji na końcu tekstu dla zmniejszających się wyników z większych liczb powinien nie jednego przekonać... ;)
Jeśli będzie zainteresowanie tematem to przygotuję mały opis jak to ugryźć w BASCOM.

_________________
http://www.sylwekkuna.com



Ostatnio edytowano 7 lut 2014, o 10:18 przez SylwekK, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 20:51 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Bardzo chętnie poznam ten kod. Mi się podoba, tym bardziej że korzystam z bascoma

Wysłane z mojego LG-P760 przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2014, o 18:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

No dobra może ktoś skorzysta, może nie... :)
To niestety tylko Bascom i jedno z rozwiązań z wykorzystaniem jego naturalnych możliwości poprzez proste podstawowe polecenia jakie on udostępnia. Można by walczyć bezpośrednio na obszarach przy pomocy zmiennej w trybie OVERLAY i efekt byłby lepszy tylko same procedury bardziej rozbudowane. Niestety tu elastyczność na korzyść jeżyka C jest nieporównywalna.
Ok, czyli robimy proste działania na zmiennych tekstowych przy pomocy polecenia MID - wycinanie fragmentów tekstu) i LEN - określanie długości tekstu, STR - zamiana liczby na tekst.

Zalety rozwiązania:
- większa szybkość wyświetlania na LCD (mniej komend do wysłania = mniej czekania);
- pełna swoboda w pozycjonowaniu zmiennych (nie musi być już spacji na końcu do zamazywania zmniejszających się liczb;
- nie ma konieczności czyszczenia ekranu (po prostu nic nie drukujemy);
- aby coś pokazać na ekranie wystarczy wysyłać to odpowiednim poleceniem w pętli głównej, a w momencie zaprzestania wysyłania tekst sam zniknie (bardzo wygodne miganie);
- każdy nowy tekst napisany w miejscu już istniejącego ma priorytet i jest wyświetlany na wierzchu przez co można tworzyć ruchome warstwy lub wyświetlić chwilowy komunikat na istniejącym tle;

No i wada niestety też jest, żeby nie było za różowo ;) Jak wiadomo działamy na zmiennych tekstowych, a te w bascomie potrafią narobić zamieszania i zająć sporo miejsca z czym trzeba się liczyć. Zarówno sam program może nieco przybrać na wadze, jak i pojemność RAM może okazać się za mała w niektórych przypadkach. Niemniej warto chociaż przetestować możliwości.

Poniższy program demonstruje działanie dwóch poleceń:

LCB Y , X , "tekst" - drukowanie na wybranej pozycji
oraz
LCB_VIEW - odświeżenie ekranu i ukazanie wszystkiego co było wywołane poprzednią instrukcją. Dopiero takie odświeżanie spowoduje że coś się wyświetli i należy to robić przynajmniej co 50-100ms stąd dobrze, żeby program był nieblokujący (najlepiej bez wait i pętli, które czekają na nic...). Oczywiście jeśli na ekranie nie wiele się dzieje to można to zrobić na żądanie w dowolnym momencie.
Uwaga aby wyświetlić jakąś zmienną numeryczną (np. zmienna temp) z dodatkami (zdefiniowane znaki, itp) należy ją zamienić najpierw na tekst przy pomocy STR() i użyć dodatkowej zmiennej tekstowej (niestety bascom nie dopuszcza podstawiania instrukcji pod zmienną) ,np:

tekst=STR(temp)+CHR(223)+"C"
i ten łańćuszek można już podstawić pod np
LCB 1 , 1 , tekst

Ok, programik wygląda tak:

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


Program jest dość dobrze skomentowany więc nie powinno być problemu mimo, że wygląda na nieco przydługi - to demonstracja działania zajmuje więcej :)
Po skompilowaniu go w takiej wersji można zobaczyć od razu efekt na symulatorze bascomowym.

Jak ktoś ma pomysły na poprawkę tego rozwiązania, (a na pewno coś by się nalazło) to oczywiście bardzo chętnie je poznam, bo to było robione tak na szybko.

_________________
http://www.sylwekkuna.com



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