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



Teraz jest 19 kwi 2024, o 23:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 8 gru 2017, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Witam,

Opierając się na temacie http://forum.atnel.pl/topic4711.html

Chciałem wyświetlić sobie duże cyfry na lcd 4x20. Ale bez dobrego rezultatu... przez 1 sekundę jest okej.. a następnie ekran wariuje i pokazują się krzaczki...

ObrazekObrazek


plik main.c

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


w pliku hd44780.c
pod koniec biblioteki dołożyłem:

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: 9 gru 2017, o 15:14 
Offline
Nowy

Dołączył(a): 21 kwi 2016
Posty: 16
Lokalizacja: Mińsk Mazowiecki
Pomógł: 1

Ahoj,
jak masz podłączony ten wyświetlacz?
Jeżeli na I2C to sprawdź ustawienia w pliku lcd.h:
"// włączenie obsługi magistrali I2C (1 - włączone, 0 - wyłączone)
#define USE_I2C 1

#define I2C_KHZ 350 // ustalamy prędkość na magistrali I2C od 50 kHz do 400 kHz (standard to 100 kHz)
"
Powodzenia :-)
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2017, o 16:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Nie podłączam LCD poprzez i2c tylko do portów. Korzystam z biblioteki Ż gb



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2017, o 17:03 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Mi przez i2c ten kod działa poprawnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2017, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Ten mój, który wstawiłem ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2017, o 17:43 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Tak.
Może po testuj LCD locate, czy prawidło adresują się wszystkie pola LCD.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2017, o 19:07 
Offline
Nowy

Dołączył(a): 21 kwi 2016
Posty: 16
Lokalizacja: Mińsk Mazowiecki
Pomógł: 1

u mnie przy tym wyświetlaczu mam takie adresy :

#define LCD_LINE1 0x00 // adres 1 znaku 1 wiersza
#define LCD_LINE2 0x40//0x28 // adres 1 znaku 2 wiersza
#define LCD_LINE3 0x14 // adres 1 znaku 3 wiersza
#define LCD_LINE4 0x54 // adres 1 znaku 4 wiersza



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2017, o 09:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Musisz sobie zdebugować jak on ustawia kolejne kursory, pewnie tutaj się rozjeżdża.
Ja obecnie nie mam czasu aby przetestować to na sprzęcie.
Poniżej kod, który dostosowałem do progmem. Tam nie ma nic skomplikowanego, zrób pułapki programowe, prześledź w krokach tą funkcję a pewnie szybko to znajdziesz. W ogóle można przerobić to tak, żeby nie korzystał z pinu RW i ręcznie podawać do funkcji lokalizacje dużych cyfr

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.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2017, o 19:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Witajcie,

Adresy mam dobrze ustawione.
Znalazłem przyczynę.. okazało się, że dzieje się tak przez funkcję _delay_ms ... nie wiem dlaczego. Po wyrzuceniu jej z kodu wszystko działa bardzo dobrze..

Co jakiś czas cyfry znikną i już nie chcą się pojawić... czarna magia jak dla mnie :/

Czy ktoś potrafi to wyjaśnić ?

Pozdrawiam
Marcin



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2017, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

A czy czasem twoje LED_TOG nie współdzieli tego samego pinu z LCD?

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2017, o 21:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

To jest niemożliwe. Bo nie jestem w stanie podłączyć fizycznie dwóch przewodów do jednego pinu. Mam pierwsza wersję ATB 1.04. Jutro nagram film pokazujący sytuację



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 17:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Witam,

Otóż jeśli wstawię wyświetlanie cyfr przed pętlą główna, wsztstko jest w porządku...
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cyfry wyświetlają się tak :
Obrazek

Jeśli ten kawałek wstawię do pętli głównej cyfry znikają. Dlaczego ??

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: 12 gru 2017, o 07:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

A efekt jest ten sam jak zrobisz to samo, ale zamiast lcd_big_int użyjesz lcd_int? Znikają całkiem czy źle się wyświetlają jak to opisywałeś wcześniej?

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2017, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Hej,
Jeśli zamienię i big_int na samo int.
To cyfry wyświetlają się normalnie - dobrze.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obrazek

Hm.. cieżko mi powiedzieć czego to jest wina...
Jak wyrzucę drugą linię w pętli głównej

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


To napis się pojawi (wiadomo bez cyfry 45).. może to wina źle ustawionego kursora?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO