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



Teraz jest 9 lut 2025, o 21:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 15 cze 2014, o 11:57 
Offline
Nowy

Dołączył(a): 26 maja 2014
Posty: 7
Pomógł: 0

Witam,

mam problem z inicjalizacją HD44780 w trybie 4 bitowym.
W internecie jest mnóstwo gotowych przykładów inicjalizacji na co dzień korzystam z bibliotek które trudno mi zrozumieć.
Zrobiłem więc sobie prymitywny program do inicjalizacji i eksperymentów.
Teoretycznie na wyświetlaczu powinien pojawić się znak 'z' jednak działanie kodu jest losowe.
Miga tylko kursor wyświetla się 'z' bądź nie dzieje się nic i ekran jest czysty.

Domyślam się że jest problem z czasami

Proszę o wsparcie :)

Pozdrawiam.

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

Cytuj:
#define F_CPU 8000000L <----- NIGDY NIE PISZEMY TEGO W KODZIE - mirekk36


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: 15 cze 2014, o 12:02 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Domyślam się że jest problem z czasami


i bardzo dobrze się domyślasz - bo im częściej będziesz pisał TAKIE POTWORKI W KODZIE jakie wyżej zaznaczyłem ci na czerwono - tym częściej będziesz rwał sobie włosy z głowy

------------------------ [ Dodano po: 3 minutach ]

obejrzyj sobie chociaż KILKA minut z tego poradnika od tego miejsca z linku:

https://www.youtube.com/watch?v=UhcyBpM57vo#t=2953


Autor postu otrzymał pochwałę

_________________
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: 15 cze 2014, o 12:49 
Offline
Nowy

Dołączył(a): 26 maja 2014
Posty: 7
Pomógł: 0

Dziękuję bardzo :).

Notorycznie na wielu stronach i w wielu poradnikach powtarzany jest ten błąd.

Jakie powinny być odstępy czasowe pomiędzy półbajtami i poszczególnymi instrukcjami ?
Co w przypadku kiedy instrukcja ma trwać max 1,64ms tak jak w przypadku Display clear i jest wysyłana w dwóch półbajtach?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2014, o 14:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 paź 2013
Posty: 38
Lokalizacja: Gdańsk
Pomógł: 0

Pomiędzy wysyłanymi półbajtami nie trzeba dawać żadnych odstępów, jedynie jeśli nie sprawdzasz BusyFlag (RW zwarty do masy) to czekasz 120 us po przesłaniu całego bajtu.

Przy funkcji Display Clear natomiast trzeba zaczekać 4,9 ms - również jeśli RW jest na stałe podpięty do masy.

Jeśli coś namieszałem to proszę mnie poprawić, bo akurat sam nadal jestem na etapie pisania bibliotek do HD44780.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2014, o 19:10 
Offline
Nowy

Dołączył(a): 26 maja 2014
Posty: 7
Pomógł: 0

Rozumiem.
Działa.
Ale nie wiem czy kod jest optymalny więc zapytam jeszcze
co z ze stanem pinu E ?

-wysyłam półbajt
- E=1
-czekam (ile ?)
- E=0
teraz Jeśli dobrze zrozumiałem nie czekam tylko:
-wysyłam półbajt
- E=1
-czekam (ile ?)
- E=0



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2014, o 20:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 paź 2013
Posty: 38
Lokalizacja: Gdańsk
Pomógł: 0

Trochę inaczej trzeba to zrobić. Zobacz np. tutaj na zależności czasowe: http://tompiast.fm.interia.pl/elektroni ... p/rys6.gif

Najpierw ustawiasz E=1, potem wysyłasz dane, a następnie zerujesz E. Stan wysoki E (enable - jak sama nazwa wskazuje) umożliwia wysłanie danych, bez tego nie ma na to zezwolenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2014, o 21:04 
Offline
Nowy

Dołączył(a): 26 maja 2014
Posty: 7
Pomógł: 0

Wszystko już działa tak jak trzeba.
Nie robiłem żadnych odstępów czasowych pomiędzy półbajtami.
Poniżej przykład

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