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



Teraz jest 5 lip 2026, o 07:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 21 mar 2018, o 22:08 
Offline
Nowy

Dołączył(a): 18 mar 2018
Posty: 8
Pomógł: 0

Witam wszystkich,

Mam mały problem z dokładnym zrozumieniem funkcji do odczytu bajtu z wyświetlacza LCD (HD 44780) opisanej w bluebooku Pana Mirka.

Najpierw tworzymy funkcję do odczytu połówki bajtu jako, że pracujemy w trybie 4-bitowym.

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


A następnie funkcję do odczytu całego bajtu:

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


A teraz moje wątpliwości. Po pierwsze co dokładnie odczytujemy? Jak rozumiem, nie jest to, np. zawartość wyświetlacza wysłana dajmy na to chwilę wcześniej na wyświetlacz, ale co to dokładnie jest. Od czego zależy wartość która zostanie zwrócona przez tę funkcję? I kolejna sprawa, o ile przy wysyłaniu bajtu "na dwa razy" nie mam wątpliwości o tyle przy odczytywaniu już tak. Funkcja lcd_readHalf w moim rozumieniu sprawdza wartości (czy 0 czy 1) na na 4 bitach i ustawia je odpowiednio na miejscach od 0 do 3 w bicie. Ok, ale potem w funkcji _lcd_read_byte my przesuwamy odczytaną wartość o 4 miejsca w lewo i odczytujemy 4 kolejne bity. Problem w tym, że mam wrażenie, że np. jeśli wartość do odczytu to bitowo: 0b11001001, to po wywołaniu tej funkcji otrzymamy wartość: 0b10011001. Czyli w moim rozumieniu odczytamy dwa razy młodszą część bajtu tylko, że raz ją przesuniemy o 4 w lewo a drugi raz nie. Czy ktoś może mi wytłumaczyć jak to jest naprawdę i jak to działa, że otrzymujemy poprawną wartość, pełny odczytany bajt, a nie dwa razy połówkę bajtu przesuniętą lub nie w lewo, tak jak mi się wydaje?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2018, o 15:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Cytuj:
Czyli w moim rozumieniu odczytamy dwa razy młodszą część bajtu tylko, że raz ją przesuniemy o 4 w lewo a drugi raz nie.

Źle rozumiesz.
lcd_readHalf() odczytuje starszą połówkę
lcd_readHalf() odczytuje młodszą połówkę.
Nawet masz to ładnie opisane w komentarzach.

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2018, o 15:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1190
Lokalizacja: Kraków
Pomógł: 95

Bo działa to tak: wyświetlacz wystawia starszą połowę bajtu, Ty odczytujesz. Zerujesz sygnał E, ustawiasz sygnał E => wyświetlacz wystawia drugie cztery bity (nie pamiętam, w którym dokładnie momencie, ale przy zmianie stanu na wyprowadzeniu E). Dzięki temu odczytujesz cały bajt, a nie dwa razy to samo


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 mar 2018, o 10:11 
Offline
Nowy

Dołączył(a): 18 mar 2018
Posty: 8
Pomógł: 0

Marhef dzięki za za wytłumaczenie, nie wiedziałem, że wyświetlacz raz wystawia starszą, a raz młodszą połówkę bajtu. Teraz wszystko janse.

1bobik1, to że tak jest w komentarzasz, nie znaczy, że tak działa. Gdyby nie fakt, o którym napisał Marhef, nadal bym myślał, że odczytujemy dwa razy, którąś z części bajtu i raz przesuwamy ją w lewo, a raz nie, ale skoro wyświetlacz wystawia dwie różne części, to teraz jest to faktycznie oczywiste.

Niemniej jednak, dzięki za odpowiedzi :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 mar 2018, o 10:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1190
Lokalizacja: Kraków
Pomógł: 95

Ktoś kiedyś na youtubie pokazywał, jak dokładnie działa sterowanie takim wyświetlaczem. Z tego, co pamiętam, nie odczytywał danych z wyświetlacza, ale masz pokazane, o co chodzi z półbajtami ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 mar 2018, o 11:33 
Offline
Moderator
Avatar użytkownika

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

Frantic napisał(a):
1bobik1, to że tak jest w komentarzasz, nie znaczy, że tak działa.

Panie kochany - poza komentarzami w kodzie masz to WYRAŹNIE i to jak BYK napisane w Bluebooku

Obrazek


i nie tylko w tym miejscu - trzeba tylko chcieć czytać książkę a nie zaglądać do samego kodu

_________________
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: 23 mar 2018, o 13:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Czym tak fajnie wycina się obrazki (taki postrzępiony brzeg)? Czy to jakieś specjalne narzędzie czy może to standardowe a tylko o tym nie wiem?

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 mar 2018, o 13:16 
Offline
Moderator
Avatar użytkownika

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

rskup napisał(a):
Czym tak fajnie wycina się obrazki (taki postrzępiony brzeg)? Czy to jakieś specjalne narzędzie czy może to standardowe a tylko o tym nie wiem?

--
Pozdrawiam,
Robert

a ja używam od dawna narzędzi ze stajni Techsmitch - podstaw to CAMTASIA STUDIO do obróbki poradników a do szybkiej obróbki zrzutów ekranu ich programu SNAGIT ... to w nim na szybko można takie wydzieranki zrobić ;) tzn jednym kliknięciem

_________________
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: 23 mar 2018, o 13:43 
Offline
Nowy

Dołączył(a): 18 mar 2018
Posty: 8
Pomógł: 0

To że tak jest w książce to też nie oznacza, że wszyscy to zrozumieją i że suchy tekst z książki mi pomoże. Dyskusja na forum może rozjaśnić pewne kwestie. Czyż nie po to powstało to "przyjazne" forum?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 mar 2018, o 14:01 
Offline
Moderator
Avatar użytkownika

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

Frantic napisał(a):
Czyż nie po to powstało to "przyjazne" forum?

Ale oczywiście - po prostu tak napisałeś, że sądziłem że wnioski wyciągasz tylko na podstawie kodu

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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