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: 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ć 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/ |