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



Teraz jest 22 mar 2026, o 02:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 14 sty 2015, o 10:58 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Witam, jestem w trakcie tworzenia menu (w języku C na ATmega16 11. 0592MHz) Korzystam z gotowej biblioteki Pana Mirka z BlueBooka, i mam problem z włączeniem kursora, mianowicie po wywołaniu funkcji do jego wyświetlenia, kursor pojawia się na chwilę i znika. Dodam, że usunięcie funkcji gaszenia kursora nic nie pomogło;/ co może być nie tak, że kursor nie jest ciągle wyświetlany?
W tym miejscu jest wywołany:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 12:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

W pliku naglowkowym lcd44780.h trzeba wlaczyc

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 15:05 
Offline
Użytkownik
Avatar użytkownika

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

A mi się wydaje, że kursor może Ci uciekać za ekran po wydruku :) Przerabiałem podobny problem ;)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 09:10 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Co do włączenia komendy w pliku nagłówkowym biblioteki, słuszna uwaga, ale włączyłem to już na samym początku, jak przyszła mi myśl, żeby korzystać z kursora..
Sprawa z uciekaniem kursora zaciekawiła mnie, bo chyba problem w tym, że nie wiem jak go używać, tzn, moment włączenia go to chwila w którym powinien się pojawić i zostać na danym polu, czy pojawi się dopiero na końcu po wpisaniu tekstu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 10:12 
Offline
Użytkownik
Avatar użytkownika

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

Nawet kiedy go włączysz, a tuż wcześniej był pisany tekst przez cały wyświetlacz to będzie on na ostatniej pozycji tekstu+1 czyli jeśli zapełniłeś 16 linii wyświetlacza to kursor stoi na ...17 pozycji czyli go nie widać.
Jeśli chcesz go mieć w dowolnej pozycji to po jego aktywacji (i zawsze kiedy coś drukowałeś na ekranie) użyj locate - natychmiast się pojawi w miejscu przez Ciebie wskazanym.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 14:42 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

SylwekK napisał(a):
Jeśli chcesz go mieć w dowolnej pozycji to po jego aktywacji (i zawsze kiedy coś drukowałeś na ekranie) użyj locate - natychmiast się pojawi w miejscu przez Ciebie wskazanym.

Strzał w 10! :) używałem locate ale przed włączeniem kursora;/
A jeszcze jedno pytanie, bo nie wywołuję nigdzie funkcji blink a mimo to kursor powoli miga, to jego normalne zachowanie? czy w kodzie przypadkowo programu gaszę go w jakiś sposób?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 14:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Pewnie po nim rysujesz gdzieś w kodzie

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 15:47 
Offline
Użytkownik
Avatar użytkownika

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

...kuba... napisał(a):
nie wywołuję nigdzie funkcji blink a mimo to kursor powoli miga,


Pomiguje dlatego, że problem rozwiązałeś połowicznie... zauważ, gdy nie ustalałeś jego pozycji to uciekał z ekranu, a teraz pozostaje na miejscu jak mu locate dasz, ale on nadal na chwilę gdzieś zwiewa z tego samego powodu co wcześniej - coś ciągle gdzieś drukujesz..., a Ty go tylko na siłę ustawiasz we właściwym miejscu. Po prostu musisz przestawić myślenie i nieco inaczej skonstruować całe wyświetlanie tekstu i pokazywania kursora.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2015, o 09:44 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Witam ponownie.
Niestety nie uporałem się jeszcze z problemem, mianowicie po dodaniu 10ms opóźnienia kursor ładnie trzyma się w pozycji wyznaczonej przez lcd_locate(1,0). Chciałbym teraz za pomocą klawiszy KEY_L oraz KEY_P przesuwać kursor. W tym celu stworzyłem dwie dodatkowe funkcje w bibliotece LCD:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i dzieje się tak, że kursor przeskakuje dosłownie na chwilę na drugą pozycję jednak zaraz funkcja lcd_locate(1,0) ściąga go na początek linii.. Móglby mi ktoś powiedzieć jak rozwiązać ten problem? może zamiast wbudowanych komend do obsługi wyświetlacza służących do przesuwania kursora, robić to za pomocą funkcji lcd_locate(x,y), Głównie chodzi mi o to, żebym mógł zmieniać znak (0 lub 1) na wyświetlaczu w miejscu w którym znajduje się kursor.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2015, o 09:54 
Offline
Moderator
Avatar użytkownika

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

...kuba... napisał(a):
Móglby mi ktoś powiedzieć jak rozwiązać ten problem?

Tak - NAJPIERW trzeba zrozumieć jak działa sprzętowy kursor
a później wyłączyć go na zawsze i realizować go samemu sobie, np poprzez miganie znaku ..... (użyć warstw na LCD) ...

_________________
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: 30 sty 2015, o 10:28 
Offline
Użytkownik
Avatar użytkownika

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

Co racja to racja... Też po bojach z kursorem sprzętowym postanowiłem w projekcie, który niedawno skończyłem wykorzystać w edycji miganie zamiast kursora, którego kiedyś używałem w bascomie. Oczywiście przy lcd buforowanym zdecydowanie łatwiej się rózne migania realizuje... wszystko co związane z drukiem się łatwiej realizuje! ;)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2015, o 11:45 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Witam. Według wskazówek porzuciłem sprzętowy kursor na rzecz programowego, ale zupełnie nie mogłem wpaść na pomysł jak zrobić, żeby mieć pewność, że po przejściu na kolejne pole, w polu które opuściliśmy pozostanie ustawiony znak, a nie symbol kursora, rozwiązałem to tak, że wciśnięcie klawisza rysuje dany znak niezależnie od wyświetlanego dotychczas (znak/kursor) i dopiero wtedy następuje przejście do nowego pola:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Mógłbym prosić o ocenę sposobu zrealizowanego rozwiązania?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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