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



Teraz jest 6 cze 2026, o 00:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 26 kwi 2014, o 13:38 
Offline
Nowy

Dołączył(a): 01 lut 2014
Posty: 23
Pomógł: 0

Siemka,
pomożecie mi zrozumieć na podstawie poniższego kodu jak odbywa się taka komunikacja? Wiem, że opisanie działania tych linijek zajmie sporo czasu ale może znajdzie się dobra dusza, która się tego podejmie.
Z góry dzięki :)

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

_________________
Nigdy się nie poddawaj, kiedy upadasz wstawaj !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 18:27 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Też chętnie podepnę się pod temat :)

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 18:49 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Protokół komunikacji z padem PS2 i połączenie drutów: http://store.curiousinventor.com/guides/PS2.
Dobra biblioteka, ale na Arduino: http://www.billporter.info/2010/06/05/playstation-2-controller-arduino-library-v1-0/

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 19:46 
Offline
Nowy

Dołączył(a): 01 lut 2014
Posty: 23
Pomógł: 0

Przeglądałem już wielokrotnie tą stronę co podałeś, schemat połączenia jest mi znany, natomiast protokół komunikacji już nie do końca. Wolałbym się teraz skupić na tym fragmencie kodu co podałem powyżej :)

Zacznijmy od "pad.h"

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

Linią COMMAND plastation przesyła komendy do kontrolera. Czy dobrze rozumiem, że:
1 linijka rozpoczyna przesyłanie i ustawia 4 bit na porcie C jako wejście z podciągnięciem do VCC ?
2 linijka, CMD_CLR co właściwie oznacza i robi?
3 linijka kończy wysyłanie i ustawia PC4 jako wyjście?

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

Tutaj tworzymy tabele składającą się z 9 elementów znakowych, zakres od 0 do 255,

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

Krótkie opóźnienie - dokładniej wstawka z asemblera

Opisze ktoś teraz "pad.c" ?
Może być podobnie jak powyżej z pytaniami aż w końcu kawałeczek po kawałeczku to rozkminimy, a dodatkowo może każdy z nas się czegoś nauczy :)

_________________
Nigdy się nie poddawaj, kiedy upadasz wstawaj !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 21:02 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Aha. Myślałem, że chodzi ci o konkrety, a to ma być takie jakby case study.
No cóż, IMHO ten kod to słabizna i raczej szkoda na niego czasu. Sory, naprawdę chciałem coś tam napisać, ale...no nie...

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 21:18 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Czaro napisał(a):
Linią COMMAND plastation przesyła komendy do kontrolera. Czy dobrze rozumiem, że:
1 linijka rozpoczyna przesyłanie i ustawia 4 bit na porcie C jako wejście z podciągnięciem do VCC ?
2 linijka, CMD_CLR co właściwie oznacza i robi?
3 linijka kończy wysyłanie i ustawia PC4 jako wyjście?

To tylko makra i w kodzie kolejność jest inna, a jak CMD skonfigurujesz jako wyjście to 1 linijka ustawia 1, a druga 0 na tym wyjściu.
Jak w tej funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 26 kwi 2014, o 21:26 przez Krauser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 21:21 
Offline
Nowy

Dołączył(a): 01 lut 2014
Posty: 23
Pomógł: 0

Spoko, trzymaj wiedzę dla siebie :>

Co do tych konkretów o których myślałeś to opowiem Ci pewną historię:
Mały chłopczyk chcąc nauczyć się jeździć rowerem, najpierw wychodzi z tatą i zaczyna od małego rowerku z dodatkowymi kółkami i tatą trzymającym za siodełko aby synek się nie przewrócił. Rozumiesz? Nie wsiada od razu na BMX-a i nie skacze na hopkach.Tutaj jest to samo, początkujący najpierw potrzebuje kogoś, kto mu 'co nieco' wytłumaczy a dopiero potem jedzie na przykładowe hopki. Tak więc, sterowanie silnikiem już opanowałem. Teraz chcę opanować tą komunikację Pada PS2 z Atmegą aby ostatecznie gdy oba zagadnienia będą w pełni zrozumiałe połączyć je ze sobą i stworzyć taki model. Dodam również, że wykonałem przykład z tej strony http://hobby.abxyz.bplaced.net/index.php?pid=3&aid=17 i w pełni mi ta komunikacja działała, więc nie wiem czemu uważasz ten przykład za słaby skoro można na nim się czegoś nauczyć?

------------------------ [ Dodano po: 9 minutach ]

Dzięki Krauser - dokładnie o taką analizę mi chodziło, oby jak najwięcej takich osób na forum. Teraz na spokojnie muszę przeanalizować to co wstawiłeś i kto wie, może zaraz sam kolejną część opiszę :D Po kawałeczku aż do celu, pozdrawiam!

------------------------ [ Dodano po: 48 minutach ]

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


Mniej więcej tak ?

_________________
Nigdy się nie poddawaj, kiedy upadasz wstawaj !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 18:13 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

void oznacza, że funkcja nie zwraca wartości, a szybkość nie ma nic do tego. Poza tym również funkcję która zwraca wartość można wywołać tak samo jak tą co nie ma return, ale wtedy tracimy informację, którą funkcja przekazuje. Przykładowo jest funkcja bool pad_get_state(), która zwraca 1 gdy komunikacja zakończyła się sukcesem, ale główny wynik tej funkcji to wartości w tablicy tab, które są zamieniane w tej linijce w funkcji pad_cmd:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak w pętli głównej w funkcji main chcesz reagować na zmianę stanu przycisków lub gałek analogowych to może to wyglądać tak:
plik main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



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

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