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



Teraz jest 19 kwi 2024, o 18:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 28 ] 
Autor Wiadomość
PostNapisane: 8 lis 2013, o 22:28 
Offline
Użytkownik
Avatar użytkownika

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

Cześć, naskrobałem funkcję która pozwoli nam wyświetlić cyfry o rozmiarze 3x2 komórki tego wyświetlacza, co może uatrakcyjnić np wykonany zegarek. Może komuś się przyda.

Obrazek

Na początek potrzebujemy wykonać mniejsze "klocki" które złożą się na całość, czyli tworzymy pierwszą tablicę którą wrzucimy do pamięci wyświetlacza jako znaki użytkownika:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Następnie tworzymy tablicę która poskleja nam te segmenty w cyfry (analogicznie jak dla 7 segmentowego)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Po wyświetleniu cyfry, kursor jest ustawiany zaraz za nią w zerowym wierszu.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 00:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 paź 2013
Posty: 57
Pomógł: 0

No i bajka. Własnie teraz mi się to przyda trafiłeś w moje zapotrzebowanie :)
dzięki

_________________
Chomikujemy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 01:03 
Offline
Moderator
Avatar użytkownika

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

Bardzo fajny i zgrabniutki kodzik ;)

_________________
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: 9 lis 2013, o 07:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lip 2013
Posty: 420
Lokalizacja: Kraków
Pomógł: 17

właśnie buduje mój zegarek na wyświetlaczu 2x16, to przyda mi się możliwość dużych znaków :D

_________________
GreenBook i BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 12:02 
Offline
Użytkownik
Avatar użytkownika

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

Jak by kto szukał wersję do BASCOM'a, a nie potrafił sobie przystosować powyższego to podobne zaprojektowałem do mojego sterownika i są na elektrodzie.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 09:36 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Coś mi nie leży.
Mam pytanie a może ze dwa.

Co robi ten kod bo kompletnie nie rozumiem się na C

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


I skoro zdefiniowane są wszystkie znaki które siedzą w pamięci wyświetlacza i żaden z nich nie jest kółeczkiem od dwukropka to jak ładujesz dwukropek ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 10:40 
Offline
Użytkownik
Avatar użytkownika

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

Dodam komentarze, to może się rozjaśni:

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


A co do dwukropka, to nie jest to dziewiąty zdefiniowany znak, tylko dwukrotnie wyświetlony (raz w górnym wierszu, a raz w dolnym) znak zaszyty na stałe w LCD o adresie 0xEF.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 12:19 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Dzięki za komentarze do kodu, tylko przeczytałem (bo i tak nie rozumiem)

savian86 napisał(a):
A co do dwukropka, to nie jest to dziewiąty zdefiniowany znak, tylko dwukrotnie wyświetlony (raz w górnym wierszu, a raz w dolnym) znak zaszyty na stałe w LCD o adresie 0xEF.


A to mi nawet do głowy nie przyszło. Muszę przeszperać zaszyte w lcd znaki bo tam ciekawe rzeczy są.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 12:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2013
Posty: 101
Lokalizacja: Wrocław
Pomógł: 4

savian86 napisał(a):
A co do dwukropka, to nie jest to dziewiąty zdefiniowany znak, tylko dwukrotnie wyświetlony (raz w górnym wierszu, a raz w dolnym) znak zaszyty na stałe w LCD o adresie 0xEF.
Wydaje mi się, że w zależności od modelu wyświetlacza, pod tym adresem mogą być różne znaki.

_________________
ATB 1.04, Bluebook wyd.II, Greenbook wyd.II



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 12:58 
Offline
Użytkownik
Avatar użytkownika

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

Ryszard56 napisał(a):
savian86 napisał(a):
A co do dwukropka, to nie jest to dziewiąty zdefiniowany znak, tylko dwukrotnie wyświetlony (raz w górnym wierszu, a raz w dolnym) znak zaszyty na stałe w LCD o adresie 0xEF.
Wydaje mi się, że w zależności od modelu wyświetlacza, pod tym adresem mogą być różne znaki.


Potwierdzam, proponuję napisać sobie pętle, która wyświetli po kolei wszystkie znaki wraz z adresem.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 18:40 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

savian86 napisał(a):
Potwierdzam, proponuję napisać sobie pętle, która wyświetli po kolei wszystkie znaki wraz z adresem.


A jak się za to zabrać? Jako że nigdy tego jeszcze nie robiłem to potrzebuję tylko podpowiedzi bo i tak napiszę w bascomie a nie w C.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 19:41 
Offline
Użytkownik
Avatar użytkownika

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

Jeśli w bascomie to zrób pętle For... next od X=0 do 255 i po kolei drukuj na ekranie LCD"dla X=";x;" kod=";CHR(x). Dobrze wplątać w to jakieś opóźnienie wyświetlania lub oczekiwanie na klawisz co każdy krok.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 19:43 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Tak tak, dzięki, to wiem tylko jak pobiera się znaki z pamięci wbudowanej lcd ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 19:52 
Offline
Użytkownik
Avatar użytkownika

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

no napisałem - przez chr(x)... w zasadzie możesz od 8 do 255, bo od 0 do 7 to są przecież definiowane przez użytkownika

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 20:10 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

No nie skumalem w pierwszej chwili bo przez CHr(xx) to zawsze pobierałem własne znaki ladowane do pamięci. Nigdy jakoś nie były mi potrzebne te wpisane na stałe.

Dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 11:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

Piękne dzięki za funkcje :) , moje pytanie brzmi jak obsłużyć ją bez wykorzystywania pinu RW ?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 13:58 
Offline
Użytkownik
Avatar użytkownika

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

Musiałbyś przerobić funkcję tak aby dodatkowo podawać lokalizacje kursora, bo inaczej to nie ma możliwości jego odczytu

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 20:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

mała modyfikacja pcb i po sprawie ;), zegarek prezentuje się fenomenalnie , polecam

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2015, o 10:21 
Offline
Nowy

Dołączył(a): 13 lut 2015
Posty: 1
Pomógł: 0

witam
może ktoś pokazać cały kod bo mam błędy jak wstawiam ten



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2015, o 23:08 
Offline
Użytkownik

Dołączył(a): 04 paź 2014
Posty: 40
Pomógł: 0

Witam,

w jaki sposób można tą funkcję wyświetlającą przerobić pod wyświetlacz 4x20 znaków? Cyfry chciałbym pozostawić tej samej wielkości.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2015, o 14:05 
Offline
Użytkownik

Dołączył(a): 04 paź 2014
Posty: 40
Pomógł: 0

Ponawiam pytanie, wydaje mi się, że problem tkwi gdzieś tutaj, jednak nie potrafię tego rozszyfrować.
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: 3 maja 2015, o 16:01 
Offline
Użytkownik
Avatar użytkownika

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

Aktualna funkcja powinna działać prawidłowo jeśli będziesz chciał wyświetlić cyfry w wierszu 1(górna połówka) 2(dolna połówka), oraz 3 i 4. Natomiast nie będzie działać dla wierszy 2 i 3 z prostej przyczyny. Wiersz 3 jest tak naprawdę przedłużeniem wiersza 1, a wiersz 4 przedłużeniem wiersza 2.

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


dobrze kombinujesz, kluczowe jest ustawianie kursora, spróbuj pobawić się wyświetlaniem y i x w różnych ustawieniach i wyłapiesz zależność. Jeśli chcesz wyświetlić w wierszach 2 i 3, to podczas ładowania dolnej połówki musisz ustawić kursor na wiersz wyżej (obecnie ustawiane jest na wiersz niżej.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 15:25 
Offline
Użytkownik

Dołączył(a): 30 paź 2014
Posty: 92
Lokalizacja: Mikołów
Pomógł: 1

Witam

Testuje właśnie tę Twoją funkcje do dużych cyfr i mam mały problem wpisując w main.c takie wywołanie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wyświetla się tylko 123 i górna część 4 a 5 już niema.

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

to wyświetla wszystkie liczby 65820 nie wiem co jest nie tak testowane na wyświetlaczu 2x16 i 4x20
i na obydwóch ta sama sytuacja



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2017, o 15:09 
Offline
Nowy

Dołączył(a): 07 sie 2014
Posty: 3
Pomógł: 0

hawranek80 napisał(a):
Witam

Testuje właśnie tę Twoją funkcje do dużych cyfr i mam mały problem wpisując w main.c takie wywołanie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wyświetla się tylko 123 i górna część 4 a 5 już niema.

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

to wyświetla wszystkie liczby 65820 nie wiem co jest nie tak testowane na wyświetlaczu 2x16 i 4x20
i na obydwóch ta sama sytuacja


udało Ci się rozwiązać ten problem bo mam to samo?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2018, o 18:42 
Offline
Nowy

Dołączył(a): 21 paź 2015
Posty: 17
Pomógł: 0

pomijając wszystkie problemy >>> a co to jest check_BF() ???
bo tego niema nigdzie .... :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2018, o 19:07 
Offline
Użytkownik
Avatar użytkownika

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

zbynio_k napisał(a):
a co to jest check_BF() ???
jest to check Busy Flag, czyli korzystanie z odczytu flagi z wyświetlacza by móc do niego wysyłać z maksymalną prędkością a nie robić predefiniowane delay-e.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 paź 2018, o 18:09 
Offline
Nowy

Dołączył(a): 21 paź 2015
Posty: 17
Pomógł: 0

rskup napisał(a):
zbynio_k napisał(a):
a co to jest check_BF() ???
jest to check Busy Flag, czyli korzystanie z odczytu flagi z wyświetlacza by móc do niego wysyłać z maksymalną prędkością a nie robić predefiniowane delay-e.


bardzo przepraszam > rozumiem oczekiwanie na READY
tylko, że jasno nie jest to napisane >> ja mam bibliotekę dla HD44780 gdzie
w procedurze _LCD_Write mam badanie stanu >> while(LCD_ReadStatus()&0x80);
więc jak mniemam temat załatwiony
procedury zapisu czegokolwiek do LCD załatwiają badanie check_BF :)
jeżeli nie to mnie naprowadź
dzięki
ps
LCD jes ready gdy bit7 statusu jest 1 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 paź 2018, o 18:37 
Offline
Użytkownik
Avatar użytkownika

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

po prostu wydzieliłem sobie do osobnej funkcji
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 28 ] 

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO