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



Teraz jest 23 mar 2026, o 09:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 20 gru 2014, o 17:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Witam, postanowiłem wreszcie wziąć się za projekt zegarka na lampach i mam problem:D
Przykładowo gdy chce wysłać taki ciąg z bufora

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

zapalają się przypadkowe elementy (za każdym wgraniem wsady inna kombinacja)
A oto schemat połączeń
Od OUT0 do OUT 7 -- mam połączone wszystkie segmenty (wraz z kropką)
Od OUT8 do OUT13 -- mam połączone siatki tych lamp

Jaki mógłby być powód że tak się zachowują lampy?
Sądzę że jakiś błąd popełniłem przy wysłaniu tych bajtów do scalaka. Jakby ktoś mógłby wskazać błąd byłbym wdzięczny.
Oto mój kod:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 19:38 
Offline
Użytkownik

Dołączył(a): 22 lut 2014
Posty: 205
Lokalizacja: Poznań
Pomógł: 22

W lini 45 chyba powinno być SPI_send_buf(*bufor);



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 20:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Hmm z początku warning wyskakiwał

passing argument 1 of 'SPI_send_buf' makes pointer from integer without a cast [enabled by default]

ale po cleanowaniu wszystko okej

Jednak nadal losowe segmenty się zapalają.

@ a przy deklaracji zmiennej w pojawia się informacja

expected 'uint8_t *' but argument is of type 'uint8_t'

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 gru 2014, o 10:58 
Offline
Użytkownik

Dołączył(a): 22 lut 2014
Posty: 205
Lokalizacja: Poznań
Pomógł: 22

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: 21 gru 2014, o 20:15 
Offline
Nowy

Dołączył(a): 12 paź 2013
Posty: 20
Pomógł: 4

Niby dlaczego w linii 45 powinno być "SPI_send_buf(*bufor);"? Kolega w funkcji SPI_send_buf odbiera wskaźnik, gdzie 'bufor' rzeczywiście jest wskaźnikiem, a '*bufor' to już jest obiekt i wysyłanie go do tak skonstruowanej funkcji w ogóle nie ma sensu. Zastanawia mnie dlaczego wyskakuje Ci "passing argument 1 of 'SPI_send_buf' makes pointer from integer without a cast". Dziwne.
Losowość danych ( i to, że losowanie następuje tylko przy wgrywaniu danych) może coś sugerować, ale niestety nie zamieściłeś schematu i ciężko jest rozważać inne możliwe błędy.

W nocie katalogowej piszą coś minimalnych czasach trwania pulsu na SCK. Nie wiem, jaki oscylator ma podłączony kolega pod procesor, więc tylko hipotetycznie doradzę, by spróbować:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zrób to samo między LATCH'ami.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 09:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

@gumeni nic to nie zmieniło, nadal różne segmenty się zapalają.
@deerjelen u nas akurat jest tak:

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

-taktowanie jest 11.0592MHz
a tutaj cześć schematu odpowiedzialna za lampy
Obrazek

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 13:04 
Offline
Nowy

Dołączył(a): 12 paź 2013
Posty: 20
Pomógł: 4

Nie dziwne, że kod Gumenieg nic nie zmienił, bo jego kod robi dokładnie to samo co Twój, tylko innymi słowami. Próbowałeś wstawić tam asm("nop");, gdzie Ci mówiłem? Wstaw kilka między załączeniem a wyłączeniem zegara, jak i przy zatrzasku i nie usuwaj dopóki nie znajdziemy głównego błędu ;p. Dioda led podłączona pod PD7 mruga z częstotliwością 1Hz? Co to jest na Pinach PB[2:0], oznaczone jako K_[3:1]?
Spróbuj coś takiego w pętli głównej.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

I później opisz zachowanie układu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 14:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

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

Dla pierwszego filmu dałem kombinacje pierwszą a do drugiego drugą
-Zamiast nopów dałem większe opóźnienia dla pewności (10us)
-Tak dioda mruga prawidłowo 1Hz
-Na pinach PB są to przyciski :)

A oto dwa filmy. Widać w oddali mrugającą diodę (LED_TOG)
-W drugim od razu zapaliły się wszystkie


_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 16:09 
Offline
Nowy

Dołączył(a): 12 paź 2013
Posty: 20
Pomógł: 4

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

W nocie jest napisane, że wgrywamy od najstarszego bitu (MSB). Mógłbyś też zmodyfikować tablice (przepisać je od tyłu), ale przypuszczam, że będziesz popełniał później więcej błędów przy pisaniu tablic dla poszczególnych cyfr. Jak zmodyfikujesz daj znać jak układ się zachowuje (jeżeli jakieś znaczące zmiany to nagranie mile widziane :) ).


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 16:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Niestety nic się nie zmieniło. Dodam tylko że podczas zapalania się kolejnych lamp, od resetu procesora dioda mignie 4 razy, po czym zapalają się kolejno lampy. Spróbuje coś w internetach poszukać. Może jakieś informacje z MIS(i)O'a wyciągnę;D (tzn. Arduino):)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 16:52 
Offline
Nowy

Dołączył(a): 12 paź 2013
Posty: 20
Pomógł: 4

Najłatwiej by było, gdybyś mógł monitorować stan na wszystkich wyjściach scalka. Czyli np, podpinasz do niego napięcie +5v, a na wszystkie wyjścia (lub przynajmniej na kilka) - rezystor - dioda - masa. Wtedy dokładnie byśmy wiedzieli co się tam dzieje. Coś jest nie tak z ilością wysyłanych bitów, bo w teorii powinny być dwa "obrazy" (bufor i bufor1), a nie, żeby się przesuwało cokolwiek dając co najmniej 4 obrazy (świeci tylko 1; dwa pierwsze; 3 pierwsze i 4 - tak jak to widzimy na 1 filmiku).
Pewno notę widziałeś, ale umieszczam "w razie w". Strona 8.
http://datasheets.maximintegrated.com/e ... AX6931.pdf
Mógłbyś jeszcze dać jakąś notę do lampy? Lub opisać te wejścia/wyjścia: DP; S; K; K1;


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 16:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Okej w końcu i tak to jest prototyp więc podłącze do każdej nóżki po diodzie i zobaczymy.
Opis lamp
DP (kropka)
S(siatka-anoda 30V+)zasilnie zewnętrzne mało iść przez przetwornicę ale jest błąd i na razie oddzielnie leci(masy ją połączone)
K(katoda-żarnik 1,5V)
K1(wyjście-żarnik)
żarniki są szeregowo więc ładnie 9v. A tak w/w pdf
http://www.tube-tester.com/sites/nixie/ ... V-11_2.pdf

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 18:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Panowie (i panie) nie wierzę :D okazało się że były zwarte dwie linie MOSI i CLK. ale dopiero na diodach doszedłem do tego. Bo najpierw dwie diody świeciły jasno a potem razem mocniej, więc coś nie tak. Potem sprawdzam i zwarcie... Teraz jestem aby jestem zły na siebie że po raz kolejny zwarcie dwóch linii popsuło mój plan.

Dzięki deerjelen za pomoc, chęci i poświęcony czas na moją hmm nieuwagę ;)


Nie potrzebne są żadne opóźnienia.:p

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2014, o 20:26 
Offline
Nowy

Dołączył(a): 12 paź 2013
Posty: 20
Pomógł: 4

Patrzyłem na kod i naprawdę nie miałem się do czego przyczepić, a niewyrabianie się w czasie to jedyne co mi przychodziło do głowy, czemu układ działa źle ;p.
Na przyszłość: dobra metoda testowania, to rozkładanie dużych układów na czynniki pierwsze xd.
Jeżeli się nudzisz i będziesz chciał "usprawniać" kod, to pomyśl nad operacjami bitowymi (chyba, że zamierzasz robić to na bitach, a tutaj tylko na szybkiego wstawiłeś 20-elementową tablicę).
Też się cieszę, że działa :)
Wesołych Świąt!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2015, o 07:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witam!
Postanowiłem wykorzystać lampy IV-11 w projekcie nowego zegara. Mam napisany program zegara z obsługą wyświetlaczy 7-seg LED (4x) po SPI (Atmega32) z wykorzystaniem dwóch rejestrów przesuwnych 74H595 (anody - wyświetlacz, katody - cyfra) i organizacją wyświetlania cy1-c4. Czy można wykorzystać ten program do sterowania układem MAX6921 podłączając do niego siatki (anody, wyświetlacze) i (katody, segmenty) wyświetlaczy IV-11 analogicznie jak do rejestrów 74H595? Proszę o porady.
Pozdrawiam
avrfun



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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