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



Teraz jest 28 kwi 2024, o 09:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 21 wrz 2012, o 19:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Cały wieczór siedzę i nie mam już pomysłu. co jest nie tak :evil:
Otóż uruchomiłem program Mirka z rozdziału o UDP. O ile sama komunikacja działa bez zarzutu, to mam problem z oprogramowaniem klawiszy.

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


Wiadomo, żeby wywołać funkcję mk_send_udp , musi być wciśnięty klawisz. Otóż program wchodzi do funcji, pomimo tego , że żaden klawisz nie jest wciśnięty. Nic nie zmieniałem w oryginalnym programie, oprócz adresów i funkcji mk_send_udp.

ciało funkcji superdebounce:

Składnia: [ Pobierz ] [ Ukryj ]
język c
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: 21 wrz 2012, o 19:56 
Offline
Moderator
Avatar użytkownika

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

Taaaaak, ciekawi mnie tylko czy masz podciągnięte linie klawiszy do VCC ?

_________________
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: 21 wrz 2012, o 20:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

No tak jak napisałeś w programie , tak jest ;)

Oczywiście, że podciągnięte

Składnia: [ Pobierz ] [ Ukryj ]
język c
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: 21 wrz 2012, o 20:05 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Nie napisałeś czy działasz na ATB z ATNELa. A co z JTAGiem na PORTC(fusebit)?

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 20:12 
Offline
Moderator
Avatar użytkownika

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

Posłuchaj, wprawdzie akurat ta wersja Superdebounce jest lekko spaczona ale to nie jest akurat powodem tego twojego kłopotu, to jednak na przyszłość używaj tej poprawionej z projektu:

17_SuperDebounce

spójrz jak w niej wygląda deklaracja funkcji:

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


widzisz ten pierwszy dodatkowy argument uint8_t * key_state ??? zajrzyj do tej lekcji i zobacz jak go się używa, trzeba powołać oddzielne zmienne jedno bajtowe na każdy klawisz. .... ale jak mówię w tym konkretnym przypadku nie to jest powodem....

musiałbyś to jakoś sprawdzić bo to co opisujesz mówi o tym jakbyś miał nie podciągnięte linie do VCC. To że masz to w programie zrobione to jedno ... ale czy dobrze np podłączyłeś ? do odpowiednich pinów ? czy nie ma tam coś innego podłączonego ?

na czym to wszystko testujesz ?

------------------------ [ Dodano po: 1 minucie ]

a jak dasz zamiast wywołań tych funkcji NULL, NULL?

_________________
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: 21 wrz 2012, o 20:20 
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

Skoro masz taka linię KL_PORT |= KL1|KL2;
to dlaczego używasz dalej w kodzie &PINC i (1<<PC2) zamiast &KL_PIN i KL2 w takim przypadku łatwo o pomyłkę. Zmienisz zdefiniowane symbole a dalej w kodzie masz nie zmienione linie przycisków.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 20:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Rozwiązałem problem, ale dalej nie wiem co było przyczyną.
Pomogło przepięcie klawiszy na PC0-PC1. Program wrzucony tak jak był na płycie, do zestawu podpięta karta sieciowa, by Atnel. Chętnie bym się dowiedział co jest problemem, coby na przyszłość czasu nie marnować :/

Druga sprawa, to:

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


Po wykonaniu tej funkcji, powinienna ramka się pokazać w klient/serwer UDP na komputerze ?
Bo po wykonaniu funkcji, nie pokazuje się nic i nie wiem, czy zostala wysłana.

Krauser napisał(a):
Skoro masz taka linię KL_PORT |= KL1|KL2;
to dlaczego używasz dalej w kodzie &PINC i (1<<PC2) zamiast &KL_PIN i KL2 w takim przypadku łatwo o pomyłkę. Zmienisz zdefiniowane symbole a dalej w kodzie masz nie zmienione linie przycisków.


Jeszcze nic nie zmieniałem w programie, narazie chcę go uruchomić i dopiero zacząć przygodę z UDP ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 20:29 
Offline
Moderator
Avatar użytkownika

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

Wiesz co? sprawdź ty najpierw czy ci w ogóle działa połączenie sieciowe ? Udaje ci się np pingować kartę sieciową ?

a co było przyczyną to nie wiem ... chociaż wygląda to tak jakbyś robił coś totalnie źle - bo akurat PC0 i PC1 są podciągnięte rezystorami 4,7K do VCC ponieważ są to przy okazji linie SDA i SCL od I2C....

więc albo podłączałeś się nie do tych pinów albo nie wiem co

sprawdź najpierw czy masz w ogóle pinga do karty

czy w programie na PC cokolwiek ci się pokazuje ? bo jeśli nic - to pewnie masz zły adres IP ustawiony

_________________
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: 21 wrz 2012, o 20:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Mam, oczywiście. Przez UDP bez problemu steruję diodami i wysyłam tekst.
Teraz po wciśnięciu klawisza, wywołuje funkcję prawidłowo, tylko w monitorze ramek nic się nie pokazuje...
Raczej nie mogłem nic źle podłączyć, podłączony jest LCD, przyciski i FT232, nic więcej.
Na szybkiego podłączyłem drugi zestaw i odbiera ramki. A na jakim porcie nasłuchuje klient PC ?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 21:07 
Offline
Moderator
Avatar użytkownika

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

Klient PC hmmm żebym ja tak teraz z pamięci - pamiętał że tak powiem ;) ale przecież tam się ustawia porty. Domyślnie powinno być tak jak jest w programie.

Jaki masz adres IP karty? jaki masz adres IP komputera? jak się łączysz z kompem ? bezpośrednio? czy jakiś switch ?

_________________
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: 21 wrz 2012, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Bezpośrednio, wszystko mi ładnie chodzi, poza tym podglądem ramek wysłanych przez send_udp().
W programie się ustawia tylko adres i porty urządzenia, natomiast na jaki port ja mam wysyłać ramkę ze sterownika ?
Z kodu programu wnioskuję, że 21000, ale brak efektu.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 21:37 
Offline
Moderator
Avatar użytkownika

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

sprawdź czy nie masz jakiejś blokady portów w windows albo antywirusa który blokuje porty przychodzące 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: 21 wrz 2012, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Nie, to nie to, bo przeciez cala pozostala komunikacja UDP smiga.
Zauważyłem inną ciekawą rzecz, po wysłaniu ramki przez tą funkcję, mruga dioda na karcie z zestawu, ale komp nie odbiera żadnego bajtu.
Adresy są w tablicy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


czyli ,ze podstawi adres z pierwszej tablicy ?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 21:57 
Offline
Moderator
Avatar użytkownika

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

W książce zdaje się jest to opisane - no chyba musi tu być adres twojego komputera ... jest ? (ja tak wyrwany z kontekstu to nie pamiętam dokładnie co i jak)

_________________
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: 21 wrz 2012, o 22:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Tak, mojego . Już mnie nauczyłeś wcześniej, żeby sprawy oczywiste zbadać zanim zacznę pytać ;)
Pobiera prawidłowo adres, no cóż, w tym momencie się poddaję, będę analizował ramki na drugim zestawie. Tobie Mirku działało wszystko ? Zaznaczam, że chodzi wszystko z wyjątkiem tej jednej funkcji. Program jest żywcem wrzucony z płyty.Diody mrugają, tekst przechodzi, krawaty wiąże, usówa ciąże, ale przez send_udp nie mogę przesłac ramki do kompa :evil:

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2012, o 22:35 
Offline
Moderator
Avatar użytkownika

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

Wiesz? Jakby mi nie działało to przykład na pewno nie pojawiłby się na dvd to po pierwsze. A po drugie to tu na tym forum jak pamietam ktoś miał podobny problem i udało mu się go rozwiązać . Spróbuj poszukać. No i po trzecie to przypomnij mi się za kilka dni a może za tydzień jak wrocę do firmy i będę miał zestaw pod ręką to sprawdzę twój kod ale musisz go spakować do Zipa i mi na maila przesłać z przypomnieniem to sprawdzę ok? biuro@atnel.pl

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

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

UDP między sterownikami pracuje normalnie, podgląd ramek zrobiłem na LCD, więc już nie potrzebuję PC.
A tak z innej beczki, do połączenia ad-hoc 2 sterowników nie jest potrzebna brama. Da się użyć tego stosu do takiej pracy ?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 21:55 
Offline
Moderator
Avatar użytkownika

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

No ixxl właśnie wpadł mi w ręce zestaw ATB, a że miałem pod ręką ATB-Ethernet to podłączyłem i sprawdziłem

wszystko działa tzn te klawisze także tylko :

1. najpierw ustaw poprawny adres swojej karty sieciowej w tym miejscu:

Obrazek


2. ustaw koniecznie adres IP swojego komputera w pierwszym elemencie tej tablicy jak niżej na obrazku:

Obrazek

a w programie na PC patrz na tą ramkę na dole - zobacz jak się objawia wciskanie klawiszy ;)

Obrazek

------------------------ [ Dodano po: 2 minutach ]

ixxl napisał(a):
A tak z innej beczki, do połączenia ad-hoc 2 sterowników nie jest potrzebna brama. Da się użyć tego stosu do takiej pracy ?


Tak da się ;) brama jest wtedy do niczego nie potrzebna.

_________________
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: 24 wrz 2012, o 07:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Dzięki Mirku za odpowiedź ;) W moim przypadku brak komunikacji do PC był spowodowany tym właśnie, że nie ustawiałem bramy, bo oda urządzenia były spięte bezpośrednio. Po połączeniu przez router, bez problemu przesyłam już dane w obie strony.
Mógłbyś trochę rozwinąć "da się" ;) ? Brak bramy muszę gdzieś w konfiguracji stosu zmienić ?

_________________
sig off ;(



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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