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



Teraz jest 22 lut 2026, o 13:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ] 
Autor Wiadomość
PostNapisane: 6 cze 2014, o 09:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

Zrobiłem zegar z datą na matrycach 4x 8x8led sterowanych maxem7219, atmega8 ds3231.
Niestety nie wiem ja zrobić scrolowanie tekstu. Jest mi to potrzebne do wyświetlania daty z dniem tygodnia, scrolowanie dlatego że
data + dzień tygodnia nie mieści się na wyświetlaczach. Kiedyś jak robiłem na rejestrach 74hc595 to nie było problemu ponieważ
tam wstawiałem pojedyńcze kolumny dla całego wyświetlacza a w przypadku maxa "wypluwam" najpierw wszystkie linie dla pierwszego nastepnie dla kolejnych.
Chodzi mi konkretnie o sposób w którym napis zaczyna się poza prawą stroną matryc i przesuwa się w lewo w pętli.
Nie wiem jak do tego się zabrać hmmm.....

Oto fimik zegara na maxie;



Obrazek

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 cze 2014, o 10:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

dambo napisał(a):
Na forum wklejałem już tu swój kod w temacie odnośnie matryc 8x8

Możesz dać linka bo znalazłem tylko filmik z działania Twoich matryc.

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 cze 2014, o 11:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Może z tego coś Ci się przyda.

http://forum.atnel.pl/topic6879.html

Mechanizm uważam, że powinien być podobny. Czyli tablica (bufor) z tym co jest scrollowane. Na wyświetlacz wyrzucane jest "okienko" czyli mała tablica o długości takiej jak wyświetlacz i to się dzieje cały czas w tle (oczywiście z jakimś opóźnieniem).

W tym samym wątku masz mój kolejny przykłąd właśnie z zegarem, w którym scrollowanie odbywa się dynamicznie. Czyli przesuwające się liczby mogą zmieniać się podczas przesuwania się.
Odbywa się to tak, że wszystkie operacje odbyuwają się na buforze. A "okienko" cyklicznie przesuwa się po nim.

Różnica będzie tylko w sposobie sterowania wyświetlaczy.



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

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

sq8dsr napisał(a):
W tym samym wątku masz mój kolejny przykłąd właśnie z zegarem, w którym scrollowanie odbywa się dynamicznie. Czyli przesuwające się liczby mogą zmieniać się podczas przesuwania się.
Odbywa się to tak, że wszystkie operacje odbyuwają się na buforze. A "okienko" cyklicznie przesuwa się po nim.

Różnica będzie tylko w sposobie sterowania wyświetlaczy.


Pięknie kolego to wygląda ale do drugiego przykładu już nawet interesującego mnie fragmentu kodu brak ;-)

No i jeszcze o ile dobrze rozumiem kod to Ty przewijasz całe bajty a ja na swoich matrycach muszę przwijać bity.
Nie mam problemu z wyświetleniem znaku z tablicy na matrycy i scrolowaniem ale nie wiem jak zrobić aby znak wsunąć na tablicę i po niej przesunąć.

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 cze 2014, o 18:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

BIGjack napisał(a):
No i jeszcze o ile dobrze rozumiem kod to Ty przewijasz całe bajty a ja na swoich matrycach muszę przwijać bity.


No ja przewijam zawartość tablicy charowej. Ale kody znaków (jest ASCII) są podpięte pod wzorce bitowe znaków dla wyświetlacza 14-seg. Nie stosuje bowiem specjalizowanego kontrolera takich wyświetlaczy (Maxim takie robi) który posiadałby wbudowany dekoder znaków. Tutaj jest tablica, która zawiera 16 bitowe wzorce znaków. Analogiczne do takich do wyświetlacza 7 seg, tylko że tutaj potrzeba 15 bitów na znak.

Kod mogę odszukać i zobaczysz jak to wygląda.

------------------------ [ Dodano po: 13 minutach ]

To jest jakaś stara wersja kodu z pierwszych prób.

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.



Myślę, że podobnie trzeba podejść do matryc.
Zrobić funkcję, która będzie wyświetlać znaki ASCII na matrycach. A przewijanie zrobić na tablicach. Niech ta funkcja "martwi" się o to jaki bity wysyłać żeby pokazała się litera. Mechanizm z tablicami powinien być poziom wyżej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2014, o 10:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

Dzięki za pomoc, niestety dopiero w poniedziałek będę mógł zasiąść do projektu.

_________________
https://www.facebook.com/jacekplichtaphotography/



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

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

sq8dsr, jakiej biblioteki używasz do SPI?

_________________
https://www.facebook.com/jacekplichtaphotography/



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

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

To jest tylko użycie SPI do wysłania bitów do rejestru. To nie jest pełna komunikacja SPI.

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


Tam w niej jest tylko jeden taki myk z odwróceniem kolejności bitów. (Ustawienie bitu DORD w SPCR) Wynika to z tego, że robiąc wyświetlacz pomyliłem kolejność wyprowadzeń jednego z rejestrów. Prościej więc było po przesłaniu pierwszego bajtu odwrócić kolejność niż zmieniać wszystkie wzorce bitowe dla znaków.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 21:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

Zrobiłem maleńki kroczek do przodu. Wbijając sobie do głowy wskazówki sq8dsr napisałem funkcję która z bufora w ram wysyła pojedyncze znaki
do sterownika matryc max7219. Wygląda to tak (z lekką dozą nieśmiałości wklejam swoje wypociny :-( )
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Problem w tym że nie potrafię zrobić aby znaki pojawiały się poza matrycą i wsuwały się bit po bicie.
Teraz jest tak że znak pojawia się na ostatniej matrycy następnie przesuwa się na ułamek sekundy
zatrzymuje i pojawia się następny ale to nie wygląda dobrze. Na filmie jest to trochę "uwypuklone"


_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 cze 2014, o 12:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Tak czy inaczej na samej matrycy osiągnąłeś efekt przesuwania się "bit bo bicie". Coś z tym przesuwaniem bufora jest jeszcze nie do końca dobrze. Nie bardzo rozumiem czemu się tak dzieje. Sam się przymierzam do czegoś takiego ale nie mam matryc...



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

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

rozwiązanie jest co najmniej banalne ;-) właśnie robię testy.


_________________
https://www.facebook.com/jacekplichtaphotography/



Ostatnio edytowano 13 cze 2014, o 18:43 przez BIGjack, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 cze 2014, o 18:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

mokrowski napisał(a):
Niech zgadnę. Wydłużyć bufor tak aby był "jeden wyświetlacz wirtualny z prawej" ?

Tak, między innymi.
Koniec radosnej twórczości :( :o :shock: :oops: :cry: Wszystko jest ok dopóki wyświetlany tekst ma nie więcej
niż 4 znaki ponieważ mój bufor to 8 bajtów z czego 4 są wyświetlane a pozostałe z prawej strony poza wyświetlaczem
czekają na wsunięcie do matrycy. Nie mam pomysłu jak zrobić przewijanie dłuższego napisu :roll: :? :?: :?:

_________________
https://www.facebook.com/jacekplichtaphotography/



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

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Może bufor większy. U mnie w tym przykładzie było chyba kolo 200 B.

Wysłane z mojego GT-I9505 przy użyciu Tapatalka



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

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

Zrobiłem krok naprzód :-) Wyświetlają mi się nazwy dni tygodnia tak jak zakładałem.



Nie wiem jednak czy idę w dobrym kierunku bo pakuję linie znaków z tablicy do buforów 64bitowych i stosuje przesunięcia bitowe aby poustawiać
je w odpowiednie miejsca no i skrolować oczywiście hmmmm....

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2014, o 19:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

Siedzę sobie nad moimi matrycami, kombinuje jak tu zrobić fajne skrolowanie a tu nagle na YT zobaczyłem to;



Wbiło mnie w fotel, koleś pisze ze to są matryce sterowanie przez max-y7219.
Ręce mi opadły :oops:

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2014, o 21:55 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Doskonale Cię rozumiem. Kiedyś kombinowałem ze scrollowaniem na LCD 2*16 i zobaczyłem to:


W każdym przypadku zawsze należy używać funkcji, która bufor z danymi wysyła na wyświetlacz, a cała zabawa, która polega przykładowo na: przesuwaniu napisu, rozpadaniu się napisu, układaniu napisu z kawałków i wreszcie operacjach 3D odbywa się na tym buforze. Jakie proste, a zarazem genialne.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 09:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

Krauser napisał(a):
i zobaczyłem to:
tak jest to majstersztyk jeżeli chodzi o wyświetlanie na lcd.
Mnie nurtuje cały czas jak podejść do tego bufora wyświetlacza led matrix. Czy mam tworzyć struktury bitowe,
czy może operacje na całych bajtach - maskowanie,przesunięcia itp.

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 09:53 
Offline
Moderator
Avatar użytkownika

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

BIGjack napisał(a):
Czy mam tworzyć struktury bitowe


Nigdy w życiu ;) ... tworzysz mapę pamięci w bajtach, gdzie każdy bit odpowiada jednemu pixelowi. Możesz więc układać bajty albo pionowo albo poziomo - zależy jak będzie ci wygodniej później pisać funkcje obsługi znaków czy też w ogóle operowania na tej pamięci buforowanej ...

------------------------ [ Dodano po: 2 minutach ]

aha no chyba że korzystasz z generatora znaków w tym układzie max to sprawa się jeszcze bardziej upraszcza bo potrzebujesz pamięci tylko na kody ASCII znaków a nie na piksele

_________________
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: 27 cze 2014, o 10:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5

W chwili obecnej robię tak że pobieram 8 bajtów przedstawiających dany znak z tablicy;

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


natępnie napełniam danymi z tej tablicy bufor hmm i tu pewnie będzie zonk bufor jest 64 bitowy

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


i dopiero na tym robię przesunięcia bitowe po czym napełniam bufor matrycy również 64bit hmm..

Wydaje mi się że to nie tak powinno wyglądać pomimo tego że działa :-)

_________________
https://www.facebook.com/jacekplichtaphotography/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 09:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 kwi 2013
Posty: 257
Lokalizacja: 3miasto
Pomógł: 5


_________________
https://www.facebook.com/jacekplichtaphotography/



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

Dołączył(a): 21 maja 2016
Posty: 42
Pomógł: 0

Hmm temat dawno nie ruszany ale poczytałem niestety w listingach bez komentarzy trochę się gubię. Proszę o pomoc, czy ktoś może mi wyjaśnić jak wysłać dane do kilku matryc połączonych szeregowo? Tzn te z układem MAX7219 czyli sterowanie przez spi. Nie chcę gotowego kodu, jedną matrycę z takim sterownikiem potrafię obsłużyć natomiast po podłączeniu kolejnej na obu wyświetla mi się to samo.Czy na 2 wyświetlacze ramka danych na spi ma mieć długość 4 bajty? Czy jakiś odstęp pomiędzy ramkami? Czy jakoś inaczej zaadresować linię drugiej matrycy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 gru 2016, o 20:55 
Offline
Moderator
Avatar użytkownika

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

Mysteziz napisał(a):
natomiast po podłączeniu kolejnej na obu wyświetla mi się to samo.

To znaczy, że pewnikiem żeś pan to źle połączył elektrycznie - nie ma innego wyjścia

_________________
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 gru 2016, o 21:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 maja 2016
Posty: 42
Pomógł: 0

mirekk36 napisał(a):
Mysteziz napisał(a):
natomiast po podłączeniu kolejnej na obu wyświetla mi się to samo.

To znaczy, że pewnikiem żeś pan to źle połączył elektrycznie - nie ma innego wyjścia


Okazało się że źle zrozumiałem jedno zdanie z PDF-a i miałem błąd w programie, a przy tym źle zrobione zasilanie(za mała moc i był spadek napięcia jak ledy dały czadu) i wszystko głupiało. Więc elektrycznie też było źle-dziękuję za podpowiedź:)



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

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