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



Teraz jest 11 gru 2024, o 23:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 10 lip 2012, o 18:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam!
Wpadł mi w ręce dzisiaj układ SCA103T.
Chciałbym porozumieć się z nim za pomocą SPI, w nocie pdf pisze, że aby odczytać z niego wartość
trzeba wysłać rozkaz RDAX np: 0b00010000.
I kombinuje jak Qń pod górkę:)
Potrzebuje POMOCY nie da się ukryć.

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

_________________
Inspekcja TV kanalizacji
Programowanie



Ostatnio edytowano 7 sty 2013, o 21:11 przez developer85, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2012, o 10:24 
Online
Moderator
Avatar użytkownika

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

Czy kolega posiada pierwszą książkę naszego wydawnictwa ?

pt: "Mirkokontrolery AVR Język C Postawy programowania" ????

jeśli tak to proszę rzucić okiem na stronę nr: 294 i drugi akapit od góry:

Cytuj:
"Wiemy jednak, że w trakcie wysyłania następuje od razu odbiór bajtu, zatem możemy sobie
napisać funkcję, która wykona dla nas od razu te dwie operacje:"


Magistrala SPI charakteryzuje się tym, że jednocześnie podczas WYSYŁANIA bajtu jest ODBIERANY bajt z układu. Nie można więc sobie najpierw coś wysłać jak to robi kolega:

Kod:
SendSpi();


a potem próbować coś odebrać

Kod:
ReceiveSpi();


jeśli mamy komunikację dwustronną oczywiście. Bo jeśli jest jednostronna to pewnie że można coś wysłać i sprawa załatwiona.

Tymczasem kolega sobie robi SEND i w tym czasie zostaje od razu odebrany bajt, który idzie w KOSMOS :(

a potem kolega robi RECEIVE co polega znowu na wysłaniu jakiegoś pustego bajtu i odebraniu czegoś tam - hmm nie wiadomo czego.

Dlatego książka w łapkę i zapoznanie się z kolejną przykładową funkcją TransferByteSpi() będzie konieczne ;)

a pozwoli to przy okazji chyba lepiej zrozumieć jak działa to 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: 11 lip 2012, o 11:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Funkcję poprawiłem.
W datasheet układu napisane jest, że jeśli chcę odczytać wartość RDAX (czyli wartość kąta po SPI) muszę wysłać komendę 0b00010000. Nie wiem czy dobrze to robię? W rezultacie mam otrzymać 11 bitową wartość. I tutaj to trzeba jakoś przesuwać bitowo?

Instrukcje:
ObrazekObrazek

_________________
Inspekcja TV kanalizacji
Programowanie



Ostatnio edytowano 7 sty 2013, o 21:16 przez developer85, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2012, o 11:28 
Online
Moderator
Avatar użytkownika

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

Ja powiem tak, w szczegółach z tym układem na pewno ci nie pomogę bo go nie mam i nigdy się z nim nie bawiłem. Ty robisz o tyle mały błąd, że zamiast sobie najpierw przećwiczyć jakąś standardową prostą transmisję SPI to od razu rzucasz się na coś takiego bardziej hmmm skomplikowanego ;) no ale może to i dobrze - jak to przejdziesz to już żadne SPI nie będzie ci straszne. Tylko że na razie ty walczysz z niezrozumieniem totalnych podstaw o SPI dlatego będziesz musiał nieźle walczyć.

Z tych zdjęć wynika, że :

1. albo zrobisz sobie programowe w pełni SPI i będziesz słał 11 bitów, z czego pierwszych 8 to będzie rozkaz a reszta DUMMY czyli nie istotne, za to od 9 bitu zaczniesz odbierać bity odpowiedzi. Skoro jest ich 11 to chyba normalne że trzeba je wczytać w jakieś dwa bajty (zmienną 16-bitową) odpowiednio przesuwając wszystko.

Tyle że pytanie które zadałeś :

Cytuj:
I tutaj to trzeba jakoś przesuwać bitowo?


coś mi mówi, że na razie coś chyba z tą tematyką u ciebie nieteges ???? dobrze zgaduję ? Jeśli dobrze zgaduję - to polecam ci odpuścić sobie na razie obsługę tego akcelerometru i dużo poćwiczyć z zakresu podstaw w tym przesunięć bo będzie kiepściutko :(

sporo o przesunięciach masz w różnych kolejnych rozdziałach książki w drugiej praktycznej części.

Nie odpowiedziałeś na pytanie czy masz tą książkę ?

_________________
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 lip 2012, o 11:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Tak książkę razem z płytką ATB mam:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2012, o 11:45 
Online
Moderator
Avatar użytkownika

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

arko_go napisał(a):
Tak książkę razem z płytką ATB mam:)


A no to było dla mnie o tyle ważne żebym wiedział czy mogę się posługiwać np takimi odwołaniami do jakiejś strony w książce podczas odpowiedzi.

_________________
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 lip 2012, o 11:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Wybrałem się z motyką na księżyc. :/
Odpuścił bym to sobie gdyby nie to, że trzeba mi to do pracy:/

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2012, o 13:51 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

arko_go napisał(a):
Wybrałem się z motyką na księżyc. :/
Odpuścił bym to sobie gdyby nie to, że trzeba mi to do pracy:/

no tak... ale kolego, pewnych rzeczy po prostu nie da się zrobić jak brakuje podstaw :(
Przecież nie rozwiążesz równania kwadratowego jak ledwo umiesz dodawać, że o mnożenu nie wspomnę. Z tym jest tak samo. :)
Musisz zacząć od początku, bo inaczej mimo najszczerszych chęci nic z tego nie wyjdzie.

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2012, o 14:05 
Online
Moderator
Avatar użytkownika

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

arko_go napisał(a):
Wybrałem się z motyką na księżyc. :/
Odpuścił bym to sobie gdyby nie to, że trzeba mi to do pracy:/


to polecam jeszcze skorzystanie z DZIAŁU RYBNEGO na naszym forum ;)

forum30.html

może się znajdzie ktoś kto będzie w stanie spłodzić jakiś kod w ramach auto-nauki ;) - po to jest ten dział

może nazwa nie poważna - ale CEL bardzo poważny

_________________
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: 13 lip 2012, o 07:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Spokojnie!
Udało mi się nawiązać komunikację z układem:)
Więc się dało!

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lip 2012, o 19:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam ponownie!
W programie tym chciałbym zamienić wartość jaką dostaję od 0 do 2047 na wartość kąta. Funkcja z noty pdf
jest taka alfa= asin(Dout/6554)
alfa - kąt
Dout - dane które wprowadzam

Teraz pytanie. Czy mozna to jakoś inaczej napisać czy trzeba korzystać z biblioteki math i funkcji asin. Niewiem jak na to avr i ile to pamięci zje sobie.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lip 2012, o 22:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Zawsze możesz 2047/360=5,6861111111 i masz ile jednostek przypada na 1 stopień kąta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lip 2012, o 19:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Z tym wzorem widzę nie wyjdzie i trzeba będzie to liczyć na piechotę.

_________________
Inspekcja TV kanalizacji
Programowanie



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

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