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



Teraz jest 21 lut 2025, o 22:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 7 cze 2015, o 19:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

witam
piszę w dziale rybnym bo liczę na to, że Ktoś się pochyli nad moim problemem.

Zmontowałem sobie matrycę led składającą się z czterech modułów czyli 32x8
Do sterowania wierszy trochę nieszczęśliwie wybrałek kolejność pinów w procku i nie mogłem tego multipleksować za pomocą prostego przesunięcia bitowego tak jak opisuje to P.Mirek w BB, ale pomógł mi Kol.mokrowski za co wielkie dzięki.
Napisałem obsługę przerwania i prostą funkcję wysyłającą napis na matrycę i to działa:
Obrazek

fragmenty kodu
funkcje wysyłające napis do matrycy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


obsługa przerwania

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



i zdefiniowane tablice poszczególnych wierszy

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




Wiem, że wyświetlanie w ten sposób to masakra jak powiedzą zawodowcy.
Potrafię stworzyć tablicę fontów, ale za cholerę nie wiem jak napisać funkcję która będzie mi pobierała dany znak z tablicy i pozwalała go wyświetlić na matrycy.
Pomożecie? :)

pozdrawiam Marek

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2015, o 20:41 
Offline
Użytkownik
Avatar użytkownika

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

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


Przykład z biblioteki do wyświetlacza z nokii 3310

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2015, o 21:22 
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

Trochę bym zmienił organizację danych, aby łatwiej manipulować buforem wyświetlacza:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

Potem znak:
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 końcu napis:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2015, o 17:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

dzięki Krauser

w sumie to zamiast moich "ifów" napisałeś fajną funkcję, ale chodziło mi też o to żeby można było napisać:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


móc tworzyć dowolny napis.

Taki sposób jak Ty przedstawiłeś z fontami też jest ok. ale fonty są bardziej pracochłonne - chyba
Chodzi też o to żebym mógł podmienić napis w trakcie wyświetlania no ale z tym to sobie poradzę - mam nadzieję :roll:

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2015, o 18:56 
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

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


Dodatkowo należy dorobić funkcję dla łańcuchów znaków z pamięci programu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2015, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Krauser

jestem w szoku - napisałeś to na poczekaniu czy już miałeś?
zresztą nieważne - wielkie dzięki

Ja sprzętowo daję radę, ale programowanie mi jeszcze trochę nie idzie
może za wcześnie się porwałem na matryce? ale nie chce mi się już migać diodami ;)

pozdrawiam Marek

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2015, o 20:18 
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

Cytuj:
jestem w szoku - napisałeś to na poczekaniu czy już miałeś?

Kolega programek pokazał mi swoje wypociny, więc miałem dużo łatwiej.
mczarny napisał(a):
może za wcześnie się porwałem na matryce?

Pomiędzy diodami a matrycami są jeszcze wyświetlacze 7-segmentowe.

Pomyśl o przewijaniu tego napisu albo i dłuższego. W zasadzie to już tylko operacje na tym buforze.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2015, o 04:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć Krauser

no tak wyświetlacze 7-segmentowe, ale to nie różni się niczym od tego co napisałem w pierwszym poście tylko zamiast wierszy mamy anody lub katody wyświetlaczy

Muszę teraz to wszystko przetrawić.....
Jak będę miał pytania jeszcze to mogę pisać na PW?
Należy Ci się dobra flaszka 8-)

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2015, o 21:35 
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

mczarny napisał(a):
Jak będę miał pytania jeszcze to mogę pisać na PW?

Jak chcesz pytać o sprawy związane z programowaniem czy mikrokontolerami to pisz w temacie, bo w końcu od tego jest forum. Jak chcesz wyskoczyć na soczek ;) to pisz na PW.

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć

patrzę na te funkcje i mam jeszcze jedno pytanie - w którym momencie są zapisywane dane do bufora wyświetlacza?

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2015, o 20:02 
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

W funkcjach setPixel i clearPixel zmieniany jest bit w buforze o nazwie display

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2015, o 09:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

ok. wiem już wszystko, ale mam jeszcze jedną wątpliwość

bufor "display" jest typu uint32_t i wiem dlaczego, ale jakbym chciał dołączyć kolejne matryce czy nawet powiększyć bufor do przewijania napisu tak żeby napis się chował to zabraknie mi typu nie sądzisz?
chyba, że ja to źle rozumiem

pozdrawiam Marek

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2015, o 12:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

mokrowski napisał(a):
A long int, a long long int :-)



taaak :D
jak mam wybierać to na zajętości pamięci mi nie zależy

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2015, o 22:49 
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

Najlepiej to mieć bufor jako tablicę kolumn. Jest to bardziej naturalne można dowolnie rozszerzać i łatwo wtedy z jednego bufora kopiować do drugiego jednocześnie załatwiając sprawę przewijania. Skomplikuje to wysyłanie danych na wyświetlacz, ale uprości wpisywanie znaku do bufora:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak to zadziała to można pokusić się o coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć

Na razie chciałem zobaczyć jak działa funkcja Send_Row

po wpisaniu bufora i funkcji mamy coś takiego

Obrazek

mamy lustrzane odbicie znaków i w dodatku pomieszana kolejność :(

wpisałem do bufora same litery "A" to lepiej to widać

Obrazek

trzeba chyba wysyłać od razu cały wiersz i funkcja powinna pozwalać na budowanie dowolnie długiego wiersza....
w tej chwili to dla każdej matrycy budujemy osobny bajt - zgoda przy załóżmy 20 matrycach zbudujemy 20 bajtów, ale ta kolejność.....

_________________
Pomóżcie mi stanąć na nogi



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

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

pobawiłem się trochę buforem i poustawiałem kolejność bitów, ale tak to nie może być bo przecież funkcja przepisywania kolumn korzysta z pliku "fonty.h" :roll: więc tam musiałbym ustawić ponownie fonty - bez sensu :x

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


i widok matrycy

Obrazek

dodam jeszcze, że zmiana ustawienia fontów w buforze inaczej niż w osmiowierszowe pozycje daje totalną kaszanę na wyświetlaczu

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2015, o 12:32 
Offline
Użytkownik

Dołączył(a): 22 mar 2014
Posty: 32
Pomógł: 1

Cześć,
mczarny napisał(a):
pobawiłem się trochę buforem i poustawiałem kolejność bitów, ale tak to nie może być bo przecież funkcja przepisywania kolumn korzysta z pliku "fonty.h" :roll: więc tam musiałbym ustawić ponownie fonty - bez sensu :x

a próbowałeś ładować font do bufora wyświetlacza od końca fontu? powinien zniknąć efekt odbicia lustrzanego.

Marcin



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

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Jeszcze zauważyłem że u Ciebie font masz zdefiniowany w liniach pionowych
a w font.h chyba jest definiowany w liniach poziomych



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2015, o 18:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

witam

Problem rozwiązany. W sumie to banalna sprawa, ale jak się do tego dojdzie to każdy problem jest banalny.
Wielkie podziękowania dla Kolegi Krausera - za funkcje zapisujące fonty do bufora i na matryce
i dla Kolegi mokrowskiego - za ustawienie kolejności wierszy w przerwaniu
bez nich pewnie jeszcze bym się motał :)

Teraz dołączam kolejne matryce i zobaczę co z tego wyjdzie a całość przedstawię w dziale projektów.

pozdrawiam Marek

_________________
Pomóżcie mi stanąć na nogi



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

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