ATNEL tech-forum
https://forum.atnel.pl/

Multipleksowanie LED - wyświetlacz 7 segmentowy
https://forum.atnel.pl/topic23453.html
Strona 1 z 1

Autor:  Johnnny94 [ 24 lis 2020, o 12:10 ]
Tytuł:  Multipleksowanie LED - wyświetlacz 7 segmentowy

Witam,
zabrałem się za zabawę z wyświetlaczem 7 segmentowym za pomocą Blue Booka. Wszystko ładnie działa kiedy mam podłączone tak jak jest opisane w książce.
Dla utrudnienia podłączyłem wyświetlacz następująco:

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


W tym momencie całkowicie nie mam pojęcia jak się do tego zabrać :P
Proszę o naprowadzenie jak sobie z tym poradzić z wykorzystaniem Blue Booka.

Autor:  mirekk36 [ 24 lis 2020, o 12:18 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

No toś nieźle Pan zaszalał sobie jak widzę - każdy segment na innym porcie prawie. Powiem krótko to się kompletnie mija z celem. Rozumiałbym jeszcze wspólne anody dawać na różnych pinach to wtedy jeszcze łatwo nawet metodą tablicową je przełączać w przerwaniu. Ale segmenty na różnych portach ? ;) Pewnie że się da jak ktoś się uprze - ale to sztuka dla sztuki.

Autor:  Johnnny94 [ 24 lis 2020, o 12:28 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

No właśnie dlatego tak utrudniłem sobie zadanie. Może jakaś mała podpowiedź jak się za to zabrać?

Autor:  mirekk36 [ 24 lis 2020, o 13:23 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Johnnny94 napisał(a):
Może jakaś mała podpowiedź jak się za to zabrać?

Nawet mi się nie chce o tym myśleć ;) .... ale tak na szybciora to sam pomyśl, w przerwaniu musisz sobie sprawdzać chyba ręcznie programowo cyfrę i ręcznie rzeźbić zapalanie na każdym pinie innego portu. Pójdzie na to czasu w cholerę ;) w przerwaniu że przestanie ono mieć większy sens tak w ogóle ... no ale można się tak bawić w 100 warunków IF i jak mówię rzeźbienie każdej cyferki - ba każdego jej segmentu oddzielnie.

Autor:  Johnnny94 [ 24 lis 2020, o 14:24 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Próbuję zrobić wyświetlanie na znalezionej Atmega 48PA. W jaki sposób można podłączyć tu wyświetlacz aby można było łatwo go zaprogramować?
Chciałbym aby piny PD0 oraz PD1 zostały wolne do ewentualnego komunikowania się (RXD,TXD), oraz podłączyć zewnętrzny kwarc.
PORT C posiada tylko od PC0 do PC6/RESET, więc brakuje jednego pinu na np. kropkę.
PORT B jest PB0-PB7, natomiast PB6 oraz PB7 pozostaje na kwarc.
PORT D jest PD0-PD7, natomiast PD0 oraz PD1 to RXD,TXD.

Autor:  mirekk36 [ 24 lis 2020, o 15:07 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Johnnny94 napisał(a):
PORT C posiada tylko od PC0 do PC6/RESET, więc brakuje jednego pinu na np. kropkę.

PC6 to RESET więc w ogóle tego pinu nie użyjesz - masz do dyspozycji tylko PC5-PC0 a więc 6 pinów

Johnnny94 napisał(a):
PORT B jest PB0-PB7, natomiast PB6 oraz PB7 pozostaje na kwarc.

A po co ci kwarc do takiej zabawy? Co to procek nie ma wewnętrznego oscylatora 8 MHz ? Przecież ma - więc w czym problem?

Autor:  SylwekK [ 24 lis 2020, o 19:32 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

A może po prostu wykorzystaj dodatkowy rejestr przesuwny 74595 jak ci zależy na wolnych portach, których zostanie ci dużo, bo do sterowania 7seg wystarczy trzy piny poganiane w prosty sposób przez SPI. Koszt prawie żaden, korzyści olbrzymie, bo z drugim takim 74595 tymi samymi pinami wysterujesz aż do 8-u wyświetlaczy 7seg.

Autor:  Daro69 [ 26 lis 2020, o 13:36 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Witam,
Johnnny94 napisał(a):
W tym momencie całkowicie nie mam pojęcia jak się do tego zabrać

Nie bardzo mam czas na analizę dawnych kodów, ale jeżeli Ty masz cierpliwość to pomyszkuj w tym kodzie. _przedpotopowy_link_ może coś podpowie, nakieruje.
(jak to Mirek napisał - "sztuka dla sztuki"). :)
pozdrawiam

Autor:  wojtekr51 [ 29 lis 2020, o 23:31 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Ogólnie to zadanie z wyświetlaczem na wielu portach jest fajne do nauki programowania. :)

mirekk36 napisał(a):
Johnnny94 napisał(a):
Może jakaś mała podpowiedź jak się za to zabrać?

Nawet mi się nie chce o tym myśleć ;) .... ale tak na szybciora to sam pomyśl, w przerwaniu musisz sobie sprawdzać chyba ręcznie programowo cyfrę i ręcznie rzeźbić zapalanie na każdym pinie innego portu. Pójdzie na to czasu w cholerę ;) w przerwaniu że przestanie ono mieć większy sens tak w ogóle ... no ale można się tak bawić w 100 warunków IF i jak mówię rzeźbienie każdej cyferki - ba każdego jej segmentu oddzielnie.

Niekoniecznie przerwanie musi zajmować dużą ilość czasu. Załóżmy dla ustalenia uwagi, że do obsługi takiego wyświetlacza masz przerwanie co 1ms. Co w tym przerwaniu musisz zrobić? - Ano w twoim wypadku tylko zmienić stan 3 portów które sterują wyświetlaczem i zmienić stan licznika wskazującego którą pozycje wyświetlacza (CA1 czy CA2) w danym przerwaniu chcesz wyświetlić. Wiąże się to z tym, że musiałbyś stworzyć bufor stanu portów. A czasochłonne kombinacje z rzeźbą cyferek (wyznaczenie bufora stanu portów) wystarczy zrobić w momencie gdy wpisujesz coś na wyświetlacz.

Johnnny94 napisał(a):
Proszę o naprowadzenie jak sobie z tym poradzić z wykorzystaniem Blue Booka.

Na pewno maskowanie się przyda. ;) To tylko takie moje podpowiedzi :)

Autor:  fofex [ 30 lis 2020, o 10:07 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Najprościej zrobić dla każdego portu tablicę wzorców kawałka cyfry przypadającej na ten port. Potem trzy razy AND 0 i OR wzorca na porcie. Jeśli założymy, że segmenty cyfr leżą na niepokrywających się pozycjach to wystarczy jedna tablica wzorców i przed AND-ORowaniem portu maskowanie wzorca.
Algorytm może nie "najprostszy" ile pozwalający na czysty i szybki kod.

Autor:  landrynek [ 5 gru 2020, o 12:00 ]
Tytuł:  Re: Multipleksowanie LED - wyświetlacz 7 segmentowy

Generalnie możesz sobie takie wartości stanów wszystkich pinów jakoś stablicować, lub zrobić kaskadę IF-ów.

Co do tego ile czasu na to zejdzie - jak to zaimplementujesz to zmierz :) mignij ledkiem w tym przerwaniu przy wejściu i wyjściu, zmierz analizatorem i z tego Ci wyjdzie jaka jest zajętość procka. Bo w tym przypadku to czyste uzyskanie większej niezależności od tego żeby dawać wszystkie piny na jednym porcie, ale kosztem czasu wykonywania tego/zasowób RAMu itp - musisz to zmierzyć jakkolwiek, żeby stwierdzić, czy Ci się to opłaca.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/