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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 18 maja 2025, o 19:14


    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 ] [ Zaznacz wszystko ]
    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

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