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



Teraz jest 10 wrz 2025, o 15:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 27 ] 
Autor Wiadomość
PostNapisane: 18 lut 2016, o 14:32 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Mam małe kłopoty ćwiczę sobie obsługę rejestru 74595 na podstawie poradników wideo p.Mirka robie dokładnie to co w przykładzie lecz gdy chce wpisać efekt do pętli While to mam wrażenie że nic się nie dzieje tak jak by wykonywal się tylko main ćwiczenia robię na wyświetlaczu 8x8 bo chciałbym w przyszłości jakoś to zmultipleksować dodaje zdjęcia i kod prosę o wskazówki co robię nie tak.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 14:42 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

A co to za operator <<= w wewnętrznej pętli while?
Masz dwie pętle while(1) jedna w drugiej.

------------------------ [ Dodano po: 1 minucie ]

Chyba chciałeś uzyskać przesunięcie bitowe, czyli użyć <<



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 14:53 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

No właśnie to jest z przykładu p.Mirka
https://www.youtube.com/watch?v=G9Ygmu7LBu4
czas 1:00:40 no i co ciekawe na filmie wszystko śmiga albo ja jestem jakiś niedowidzący :) lecz prubowałem z tylko while (1) dalej nic
program zachowuje się tak jak by wogule nie brał pod uwagę tej pętli tylko wykonuje ostatnią linijkę w main i się zatrzymuje
dodam ze mam takie fusy jak na obrazku taktowanie 11059200 może coś nie tak ustawione

Obrazek



Ostatnio edytowano 18 lut 2016, o 14:56 przez olitroniks, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 14:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

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


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


------------------------ [ Dodano po: 1 minucie ]

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 15:01 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Faktycznie zonk z tym includem poprawiłem w kodzie dalej nic co ciekawe w innym programie miałem ten sam błąd...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 15:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Ustaw jeszcze "CKOPT opcja oscylatora". Zobacz co jest tam napisane poniżej. Ty masz kwarc powyżej 8MHz, więc należy go zaznaczyć.

------------------------ [ Dodano po: 1 minucie ]

A tą linijkę z define też poprawiłeś? ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 15:10 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

No i jednak moja ślepota dala w kość wiedziałem że coś knoce. Wielkie dzięki za uświadomienie mam jescze pytanie jesli chodzi o to ze jak wpisze wartość startową np sendspi (0xf0) co binarnie daje 1111 0000 na wyświetlaczu diody zapalają sie od prawej do lewej chciałbym to jakoś uporządkować żeby było od prawej bo obecnie przy takiej wartości diody zapalne są tak 0000 1111

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

Długo się zastanawiałem co ta opcja zmienia tak naprawdę

------------------------ [ Dodano po: 7 minutach ]

No i tak teraz wszystko śmiga ale gdy mam ustawione przesuniecie bitowe <<=1 w lewo diody radośnie leca od lewej do prawej czyli od najstarszego do najmłodszego bitu jak dobrze myślę...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 15:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Nie wiem czy o to Ci chodzi, ale wystarczy dać znak ~
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 15:30 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Tak wiem o tyldzie jedyne co ona zmienila to to że lata sobie radośnie dioda nie zapalona a reszta jest włączona chodzi mi bardziej o to ze jak wpiszę wartość np binarnie 1000 0000 to chciałbym jakoś odwrócić funkcje sendspi żeby na wyświetlaczu zapalały sie identycznie diody czyli dla 1 dioda zapalona od lewej obecnie zapala sie tak 0000 0001 może to jest gdzieś do ustawienie w rejestrze spcr szukam nadal



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 16:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Tak musisz ustawić jeszcze jeden bit DORD w rejestrze SPCR, zobacz w dt procka.

Obrazek

Czyli Twoja funkcja będzie wyglądała tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 16:30 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Problem rozwiazalem ustawiając bit w rejestrze SPCR o nazwie DORD ktory zamienia kolejność wysyłania bitów od najstarszego do najmłodszego dziekuje za wskazówki no chyba że da się to lepiej inaczej zrobić:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 16:55 
Offline
Moderator
Avatar użytkownika

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

olitroniks napisał(a):
Tak wiem o tyldzie jedyne co ona zmienila to to że lata sobie radośnie dioda nie zapalona a reszta jest włączona chodzi mi bardziej o to ze jak wpiszę wartość np binarnie 1000 0000 to chciałbym jakoś odwrócić funkcje sendspi żeby na wyświetlaczu zapalały sie identycznie diody czyli dla 1 dioda zapalona od lewej obecnie zapala sie tak 0000 0001 może to jest gdzieś do ustawienie w rejestrze spcr szukam nadal

No a co za problem wysłać bity od drugiej strony ? ;) przecież gdy będziesz działał na takim wyświetlaczu to co chwilę będzie trzeba robić różne takie kombinacje i co? wtedy będziesz zmieniał bit DORD ? to nie ma najmniejszego sensu

zamiast wysyłać 0x80 wystarczy wysłać 0x01 ot wsio .... a przesuwać sobie możesz już bity w którą stronę chcesz i negować i cuda na kiju robić ;)

_________________
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: 18 lut 2016, o 17:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

mirekk36 napisał(a):
zamiast wysyłać 0x80 wystarczy wysłać 0x01 ot wsio .... a przesuwać sobie możesz już bity w którą stronę chcesz i negować i cuda na kiju robić ;)


Dodam, że masz to wszystko podane jak na tacy kilka postów wyżej. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 17:17 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Tak tylko ja myśle w tym kierunku nie wiem czy słusznym w sumie wole mieć od prawej w sumie żadna różnica lecz jak dalej bede definiowal znaki to chciałbym mieć możliwość wyświetlania czegoś na zasadzie współrzędnych x y tylko nie wiem jak się zabrać za multipleksowanie bo na wiersze użyłem układu CD4017 a za nim ULN w zwyklym wyświetlaczu 7seg przełączanie odbywało się na 4 pinach cy1 cy2 itd no ale jakoś powolutku może rozgryzę ale pytanie jest takie czy w dobrym kierunku myślę bo nie chciałbym potem pisać wszystkiego od nowa...swoją drogą jest masa ciekawych i porządnych poradników



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 18:01 
Offline
Moderator
Avatar użytkownika

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

olitroniks napisał(a):
jak dalej bede definiowal znaki to chciałbym mieć możliwość wyświetlania czegoś na zasadzie współrzędnych x y

A to czy będą osie x y zależy od kierunku wprowadzania bitów ? ... wcale ... organizacje pamięci w wyświetlaczach bywają różne - można powiedzieć, że cztery są na pewno

bity w bajcie od MSB do LSB a bajty lecą poziomo
bity w bajcie od LSB do MSB a bajty lecą poziomo

albo

bity w bajcie od MSB do LSB a bajty lecą pionowo
bity w bajcie od LSB do MSB a bajty lecą pionowo

Obrazek

Jaki sposób wybierzesz to zależy bardziej od tego na jaki generator fontów się zdecydujesz - a myślenie na etapie wysyłania danych na tak niskim poziomie jak SPI czy lepiej będzie mi wysyłać od MSB czy od LSB nie ma kompletnie sensu - bo później dla twojej koncepcji wyświetlania fontów może przypadkowo tu wybrany sposób być mordęgą ...

uwierz mi, że każdy ze sposobów można zrealizować ale wybór zależy od pomysłu właśnie na organizację bitów w foncie, od rozłożenia bajtów w pamięci itp .... ;)

_________________
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: 18 lut 2016, o 22:49 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

No i stoje w miejscu nie mam pojęcia jak wystawić stany na CD4017BE aby przełączał wiersze załączam schemat konstrukcji na którą się zdecydowałem a więc wystawialem stan wysoki co 1sek na wejście clock ale nic sie nie dzieje z tego co wiem na wejście reset podaje sie stan po przejsciu 8 cyklów aby zliczał od początku coś czuję że z tym licznikiem sobie utrudniłem życie :P ale kto mówil że bedzie łatwo :)

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 22:55 
Offline
Moderator
Avatar użytkownika

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

Ło matko to sobie kolega utrudnia życie od samego początku ... ;) a to co? nie można było dać trzeciego rejestru przesuwnego zamiast tego cd4017 ? i całość ładnie wsuwać do 3 rejestrów ? ;) ... oczywiście no można i z tym cd ... tylko po co ? aż się prosi tu o jeszcze jeden rejestr przesuwny i cały wyświetlacz będzie śmigał tylko na SPI

_________________
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: 18 lut 2016, o 23:07 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

No fakt sam nie wiem po co ja go dałem może w celach dydaktycznych więcej się nauczę może ale już mi to zaczyna nie pachnieć co ciekawe wykres wskazuje że powinno działać ale widze ze pin reset powinien byc w stanie niskim

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 10:17 
Offline
Użytkownik
Avatar użytkownika

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

Masz wszystko dokładnie opisane w miejscu skąd wziąłeś schemat o który pytasz.
Nie brniesz przypadkiem w zbyt głęboką wodę?

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 11:15 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Hej schemat wziąłem z forum dokładnie od kolegi SunRiver przeglądając forum o tej tematyce i tak postępy już są udało mi się wysterować wiersze w odstępie 50ms narazie na delayu trzeba by teraz napisać funkcje sprawdzającą numer kolumny jako Y i zrobić odświerzanie timerem programowym 100hz bo używam 1 takiego wyświetlacza a nie 2 jak na schemacie:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 11:26 
Offline
Użytkownik
Avatar użytkownika

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

Spoko, tu masz link ---- http://embedded-lab.com/blog/lab-15-scr ... x-display/

ps. na schemacie miałeś link ;)

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 11:31 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Wiem wiem ale na stronie jest opisana zasada działania wszystkiego tylko na początku trochę źle interpretowałem zasadę działania tego CD dokumentacja pomogła ale to dopiero wierzchołek góry lodowej :)

------------------------ [ Dodano po: 3 minutach ]

Myślę że najprościej będzie wprowdzić samą oś Y za x podawać poprostu wartość bitową np Y1=0xf0 itd ale po drodze wszystko się może zdarzyc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 11:44 
Offline
Użytkownik
Avatar użytkownika

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

Jest tam wszystko, łącznie z linkiem do kompletnego kodu (niestety na PIC-a)

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 13:42 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Teraz kolejna sprawa szukam w BB jak sprawdzić do danego taktu zegara na pinie taktujacym zakładając co 1 sekunde nastepuje stan wysoki wszystko fajnie tylko musze to mieć bo mam wierszy 8 i po tych 8 cyklach musze zmienic ze stanu niskiego na pinie reset na wysoki zeby licznik znowu zaczął liczyć od początku bo jak w tym calym CD4017 wyjsc jest 9 co skutkuje wypadaniem wierszy poza wyswietlacz dodatkowo muszę znać numer każdego taktu bo np gdy wiersz 4 czyli y=4 to w tym momęcie muszę wysłać wartość kolumny



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 14:44 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Nie ogarniam tego proszę o jakieś wskazówki poradniki na bazie których można to rozwiązać



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 21:58 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Więc jakoś udało mi się z multipleksować do ośmiu odświeżanie dałem na 70Hz razy 8 wierszy :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2016, o 20:09 
Offline
Nowy

Dołączył(a): 06 paź 2015
Posty: 18
Pomógł: 0

Mecze się dalej z tym ale już są jakieś efekty ale nie do końca zupełnie nie rozumiem jak sie zabrać za wyświetlenie znaku w funkcji char mam zdefiniowana tablice której elementy odpowiadają kodowi ASCI ale chyba ja czegoś nie do konca wiem mam zdefiniowane wiersze w postaci oy1 oy2 itd i teraz jak wstawić to w bufor aby co to dzialało np w funkcji print="tekst"
Teraz to tylko bledy same z mojej nie wiedzy napewno wrzucam to co akurat do tej pory mam
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



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

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