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



Teraz jest 26 lut 2025, o 22:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 9 lis 2016, o 21:19 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Witam

Chcę wysłać bajt za pomocą SPI do rejestru 74164, podłączenia:
ATMega 32 74164
PB5 MOSI AB nóżki 1,2
PB7 CLK CLK nóżka 8
MR do Vcc

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

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


do wyjść rejestru podłączyłem diody led w celu przetestowania czy funkcja dział, niestety na wyjściach rejestru mam cały czas 0 mimo wywołania funkcji z jakim kolwiek parametrem np Send_SPI(10). Co robię nie tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2016, o 22:33 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

a zatrzasnąłeś po wysłaniu?

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 11:36 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Harry napisał(a):
a zatrzasnąłeś po wysłaniu?

74164 nie ma zatrzasku.

W pliku main.c w pętli głównej wywołuję Send_SPI i w tym momencie program jakby się zawieszał, w pętli głównej dałem przed wywołaniem Send_Spi zapalenie diody led ( aby skontrolować czy program działa) a po wywołani Send_Spi dałem zgaszenie diody, dioda się zapala ale nie gaśnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 12:52 
Offline
Moderator
Avatar użytkownika

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

to pokaż pan kod w main C jakim to testujesz bo tam może robisz błąd

_________________
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: 10 lis 2016, o 13:02 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

mirekk36 napisał(a):
to pokaż pan kod w main C jakim to testujesz bo tam może robisz błąd


w pętli głównej wpisałem sobie kod:



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


jeżeli wyrzucę Send_SPI dioda sobie miga, jeżeli wstawię Send_SPI dioda się zapala i świeci cały czas, tak jakby dochodziło do funkcji wysłania przez SPI i kuniec.

Cały plik main.c wrzucę jak będę w domciu.



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

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

eeeeh ok ja rozumiem .... ale zrozum, że takie przesyłanie na raty to jak zadawanie zagadek na forum, zamiast raz a porządnie zadać pytanie

skąd np my mamy wiedzieć co u ciebie się kryje pod

MOSI_PORT

??? jeśli rejestr PORTX to już masz babola bo źle inicjalizujesz SPI i to może być jak najbardziej powodem że bit SPIF nigdy nie zostanie zmieniony

_________________
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: 10 lis 2016, o 16:37 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

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


tak wygląda cały plik main.c, próbuję go maksymalnie uprościć aby tylko SPI ruszyło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 16:47 
Offline
Moderator
Avatar użytkownika

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

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


No robisz mega babola - jak można inicjalizować rejestry SPI jeśli się najpierw nie ustawi właściwych kierunków dla linii ?

Masz może Bluebooka ? ... jeśli tak to zajrzyj na DVD/Pendrive do lekcji o SPI albo do książki

_________________
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: 10 lis 2016, o 17:05 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Poprawiłem , nie pomogło coś jest jeszcze nie tak, wgrałem do procka kod z Bluebook - i mimo że jest na 74595 to działa, coś gdzieś knocę tylko nie mogę dojść co.



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

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

No to skoro masz działający kod - no to już nie powinno być problemu ze znalezieniem błędu - pewnie jakaś literówka może ? ;) sprawdź dokładnie

_________________
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: 10 lis 2016, o 19:08 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2595
Pomógł: 128

A kod kompiluje Ci się bez warningów/error'ów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 20:33 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

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


to jest kod Mirka z BlueBook-a, okrojony przeze mnie, ten kod działa, jako że ja chcę wykorzystać rejestr 74164 to CS na PB4 jest mi nie potrzebne, ale jak usunę z kodu:

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


oraz wytnę go z inicjalizacj (1<<CS):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


to przestaje działać , dziwne.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 21:11 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
to przestaje działać , dziwne.

Wcale nie dziwne - zdaje się, że nie czytasz PDF'a

Obrazek

_________________
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: 10 lis 2016, o 21:31 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Niestety nie znam angielskiego :(, jestem z pokolenia które od najmłodszych lat uczyło się rosyjskiego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 21:50 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
jestem z pokolenia które od najmłodszych lat uczyło się rosyjskiego.

eeeeh no to tak jak ja ... przez co nigdy tego rosyjskiego się i tak nie nauczyłem a teraz żałuję bo by się przydał - sporo fajnej literatury w tym języku jest (elektronicznej) ... tyle że w tamtych czasach człowiek się buntował ...

ale ok ja troszkę znam techniczny więc pomogę

jeśli używasz SPI w trybie MASTER a tak chcesz używać to masz do wyboru albo

ustawić pin SS (CS) jako wyjście i już będzie ci działać ... pomimo to że nie musisz go wcale używać w programie ;) ... albo możesz używać jako wyjście ale do całkiem innych celów niż SPI ... więc chyba nie ma problemu ;)

Jeśli zaś nie ustawisz go jako WYJŚCIE no to musisz (ta czerwona ramka) wtedy MUSISZ i tak przynajmniej podciągnąć to wejście do VCC w przeciwnym wypadku gdy będzie na nim stan niski - procek pomyśli że inny układ MASTER chce przejąć magistralę i będzie chciał się zachowywać jako SPI SLAVE - a tego pewnie nie chcesz ;)

Więc jeśli nie jest ci ten pin potrzebny to zostaw go ustawionego jako wyjście i już - w czym problem ? A jeśli potrzebny - jako wyjście (jak pisałem wyżej do innych celów - to też śmiało z niego korzystaj do innych celów niż SPI) ... gorzej gdybyś chciał go koniecznie stosować jako WEJŚCIE i wymuszać na nim stan NISKI wtedy będzie ZONK jak sam widzisz ;)

_________________
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: 10 lis 2016, o 22:20 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Ostatnie pytanie ( na tym etapie ) PIN SS(CS) to koniecznie jest BP4?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 22:23 
Offline
Moderator
Avatar użytkownika

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

A czy widzisz w PDF w opisie na drugiej stronie procka żeby opis SS był przy innym pinie niż PB4 ? ;)

_________________
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: 10 lis 2016, o 22:40 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Jasne, przepraszam to już zmęczenie ;) Chcę napisać program do wyświetlania tekstu na matrycy led i wyboista droga przede mną, pozdrawiam. Jeszcze raz dzięki za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2016, o 22:50 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
Chcę napisać program do wyświetlania tekstu na matrycy led i wyboista droga przede mną

No wyboista i powiedziałbym, że nawet hardkorowa - ale nie dlatego żebyś miał nie dać sobie rady od strony programowej ;) bo tu na pewno dasz radę ... za to rejestr przesuwny wybrałeś do tego celu TRAGICZNY :( ... toż on nie ma zatrzasku ....

To co na 7-segmentowych wyświetlaczach LED zwane jest duszkami przy nieprawidłowej obsłudze multipleksowania ... i można to programowo wyeliminować - to dzięki takim kocim starym rejestrom będziesz miał efekt po wielokroć gorszy od duszków, smużenie i brzydko wyświetlane dane na takim wyświetlaczu ...

ZDECYDOWANIE warto wybrać jeśli nie specjalizowany rejestr do takiego celu i to z możliwością od razu sterowania prądowego diod LED (czyli zero rezystorów) ;) ... to przynajmniej takie popularne rejestry jak 74595 czy CD4049 ... no byle jaki byle by z Latch'owaniem ;)

_________________
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: 11 lis 2016, o 16:15 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Przerobienie programu z 74164 na 74595 nie będzie problemem (oglądałem poradnik :D ), a że mam w domu kilka 74164 to wykorzystuje do ćwiczeń, udało mi się napisać program który wyświetla pojedynczy znak na jednej matrycy, nie mam koncepcji jak wyświetlić znaki z podanego wyrazu, a tu przecież jeszcze przesunięcie trzeba zrobić :( no i kilka matryc podłączyć.

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: 33 minutach ]

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


czy to może być az tak proste? :shock:



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO