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



Teraz jest 25 kwi 2024, o 14:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
 Tytuł: czyszczenie LCD
PostNapisane: 2 wrz 2014, o 10:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

Witam

przejrzałem starsze posty i wiem że najlepiej czyścic LCD komendą lcd_str(" "); po przez puste nadpisywanie

Wyświetlacz będzie migał jak będzie czyszczony za często (za szybko w pętli )

Problem w tym ze niby wszystko zrobiłem ok a problem nadal ten sam czy może mi ktoś bardziej szczegółowo wytłumaczyć jak prawidłowo powinno to wyglądać .


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: 2 wrz 2014, o 11:49 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

możesz spróbować wykorzystać timer, który w momencie przepełnienia ustawi flagę i wykona się switch



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 12:03 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Pokaż jak wywołujesz tego switch'a. Jeżeli w pętli głównej zapitalasz z ciągłym nadpisywaniem stanu wyświetlacza to będzie migać. Wysyłanie na wyświetlacz lepiej zrobić na żądanie czyli jeżeli na prawdę nastąpiła zmiana wyświetlanej wartości. Jeżeli wyświetlana wartość zmienia się bardzo szybko ( kilka, kilkanaście, czy kilkadziesiąt razy na sek. to i tak nie jesteś w stanie śledzić tych zmian. W takim przypadku lepiej daną wpisywać do bufora a bufor np. co 500ms no max.250ms na wyświetlacz ( wg mnie 4 razy na sek. to i tak za szybko). Wtedy zobaczysz coś sensownego a nie migające bezładnie cyferki.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 12:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

chodzi mi jak najprościej to zrobić jestem w case 0 przechodzę do case 1 mam czyszczony wyświetlacz z poprzedniego case i wyświetlana zawartość case 1 i tak dalej w case 2 czyszczę to co było w 1 i wyświetlam to co jest w 2



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: 2 wrz 2014, o 12:22 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Moim skromnym zdaniem, jeśli chcesz czyścić wyświetlacz przez nadpisanie spacji to powinieneś wypisywać tekst zawsze od początku wyświetlacza np.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

To po pierwsze, a po drugie nie czyść miejsc gdzie jest wynik tylko nadpisuj nową wartość. Oczywiście trzeba dodać warunek, który określi jakie miejsca skasować na wyświetlaczu gdy wynik zmieni się z liczby jednocyfrowej na dwucyfrową ... itd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 12:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

Już doszedłem do tego sam zrobiłem tak :


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: 2 wrz 2014, o 12:39 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 10 maja 2014
Posty: 10
Pomógł: 3

Moim zdaniem nie potrzebnie za często czyścisz LCD, w case 2 źle wyczyściłeś LCD i pozostały wartości po case 1, spróbuj tego:
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: 2 wrz 2014, o 13:03 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Tak się zastanawiam, po co co 200ms wyświetlać stałe napisy. Może lepiej stałe napisy wyrzucić poza warunek if(!Timer1) i je zmieniać na podstawie zmiany klawisza a wewnątrz warunku if(!Timer1) wyświetlać zmieniane wartości.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 13:25 
Offline
Moderator
Avatar użytkownika

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

Buforowanie panowie - buforowanie, a wtedy wszystkie linie LCD można wywalać na LCD nawet co 50 ms i mieć animacje gdyby się zachciało ;) zaś dane do wyświetlenia robić do bufora w RAM, Podobnie jak to pokazuję w poradniku na temat OLED tyle że tam potrzeba aż 1kb RAM a przy takich wyświetlaczach zaledwie kilkanaście / kilkadziesiąt bajtów na bufor ...

_________________
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: 2 wrz 2014, o 16:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

z mruganiem już sobie poradziłem mam problem z EEPROM

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



na wyżej wymienione komendy wszystko mi działa i jest ok mam natomiast problem gdy typ zmiennej ma być typu uint16_t

jak obsłużyć taki typ ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 16:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Żeby zapisać lub odczytać zmienną 16-bitową należy użyć eeprom_write_word() i eeprom_read_word().

Ale najlepiej jak wszystkie zmienne wrzucisz sobie w jakąś strukturkę a potem odczyt lub zapis robić za pomocą eeprom_write_block() i eeprom_read_block(). Wszystkie zmienne mamy ładnie w jednym miejscu a nie porozrzucane po całym programie.

Polecam ten poradnik http://mirekk36.blogspot.com/2012/11/av ... iazek.html



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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