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



Teraz jest 21 sty 2021, o 06:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 24 lis 2020, o 12:10 
Offline
Użytkownik

Dołączył(a): 05 sie 2019
Posty: 43
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2020, o 12:18 
Offline
Moderator
Avatar użytkownika

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

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.

_________________
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: 24 lis 2020, o 12:28 
Offline
Użytkownik

Dołączył(a): 05 sie 2019
Posty: 43
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2020, o 13:23 
Offline
Moderator
Avatar użytkownika

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

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.

_________________
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: 24 lis 2020, o 14:24 
Offline
Użytkownik

Dołączył(a): 05 sie 2019
Posty: 43
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2020, o 15:07 
Offline
Moderator
Avatar użytkownika

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

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?

_________________
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: 24 lis 2020, o 19:32 
Offline
Użytkownik
Avatar użytkownika

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

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.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2020, o 13:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2020, o 23:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 wrz 2013
Posty: 71
Lokalizacja: Sierakowice/Gdańsk
Pomógł: 9

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 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2020, o 10:07 
Offline
Użytkownik

Dołączył(a): 29 lis 2019
Posty: 76
Pomógł: 24

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.

_________________
Think for yourself and question authority.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2020, o 12:00 
Offline
Użytkownik

Dołączył(a): 17 mar 2020
Posty: 64
Pomógł: 5

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.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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