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



Teraz jest 27 lut 2025, o 10:30


Strefa czasowa: UTC + 1





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

Dołączył(a): 01 sty 2014
Posty: 243
Pomógł: 9

Witam

Zrobiłem sobie na podstawie niebieskiej książki sterownik oparty na ENC28J60. Generalnie działa, ma 2 funkcje jedna przerobiona z set_led, która załącza przekaźnik. Druga opcja przerobiona z get_led zwracająca stan stycznika. Wszystko ładnie działa z programem TestyUDP :) produkcji pana Mirka. Jak w programie kliknę LED1 przekaźnik się załącza jak kliknę sprawdź otrzymuję na kontrolce LED1 stan faktyczny stycznika.

Chciałem pójść krok dalej i stworzyć komunikację pomiędzy takimi 2 sterownikami. Jeden by wysyłał informację do drugiego by się załączał po zwarciu powiedzmy switcha i zapalał diodę (w tym przypadku załączał przekaźnik) jeżeli zdalny sterownik wykryłby załączenie stycznika.
I tu pojawia się problem, bo nie mogę wysterować zdalnego przekaźnika.
W programie klikanie LED1 powoduje wysłanie ramek: [0^1^0] lub [0^1^1] i komunikat np: ramka --> [0^1^1].
Na chłopski rozum wyedytowałem kawałek kodu:
Kod:
void mk_send_udp(uint8_t nr_klawisza) {
    char str[30];
    sprintf(str,"0^1^1");
    send_udp(buf, str, strlen(str), 1100, farip[ip_pc], 21000);
}

po skierowaniu tego do programu otrzymuję: ramka <-- [0^1^1], czyli można powiedzieć że identycznie jak sam program wysyła tylko strzałka kierunkowa jest inaczej zwrócona bo w końcu to program odbiera a nie nadaje.
To samo wysłane do zdalnego sterownika nie działa.
Co jest nie tak, że program interpretuje to prawidłowo, sterownik nie :(

Pozdrawiam i liczę na wszelkie wskazówki.

_________________
http://www.ate-zbaszyn.eu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2014, o 19:56 
Offline
Moderator
Avatar użytkownika

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

a może niepotrzebnie wysyłasz te nawiasy kwadratowe ? .... tak z pamięci tylko coś podpowiadam - bo szczegółów nie pamiętam a nie mam teraz jak do kodu zajrzeć

_________________
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: 27 mar 2014, o 20:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2014
Posty: 243
Pomógł: 9

Już po kłopocie panie Mirku. Jak zwykle diabeł tkwi w szczegółach.
Nie na ten port informacje wysyłałem.
Sterownik nasłuchuje na porcie 1200 natomiast wg przykładu z książki odpowiedź z funkcji mk_send_udp na zupełnie inny.

Sorry za małe zamieszanie, ale znów czegoś ciekawego się nauczyłem :)

_________________
http://www.ate-zbaszyn.eu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2014, o 00:44 
Offline
Moderator
Avatar użytkownika

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

Cieszę się że ruszyła taka komunikacja pomiędzy prockami ;) .... daje ona sporo fajnych możliwości

_________________
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: 29 mar 2014, o 20:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2014
Posty: 243
Pomógł: 9

No daje daje.
W tej chwili myślę nad sensowną komunikacją pomiędzy tymi sterownikami. Tak by sygnał był wysyłany powiedzmy co około sekundę w każdą ze stron, co by za bardzo sieci nie zapychać masą pakietów.
Wydaje mi się, że najsensowniejsze będzie uruchomienie timera do tego celu. Chyba, że ma pan ciekawszy pomysł.

_________________
http://www.ate-zbaszyn.eu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2014, o 07:22 
Offline
Moderator
Avatar użytkownika

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

oczywiście że timera - ale ponieważ obsługa eth jest reaizowana tu w poolingu to zwykły timer programowy powinien z pewnością wystarczyć

_________________
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: 31 mar 2014, o 21:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2014
Posty: 243
Pomógł: 9

Co do timera to miałbym jedno pytanie. Załóżmy, że mam procesor np atmega32 z kwarcem 16MHz. Chciałbym odmierzać czas co sekundę. Po podaniu tych założeń do AVR Timer Kalkulator otrzymuję, że w trybie CRC do OCR powinienem wpisać wartość 15624 na co Eclipse się burzy: large integer implicitly truncated to unsigned type. Ja tą wartość zmniejszyłem to 155 i dodałem sobie zmienną licznik. Teraz timer po przepełnieniu inkrementuje zmienną licznik aż dojdzie do 100. Wtedy następuje zerowanie zmiennej licznik i wykonanie określonych funkcji. Mam pytanie czy takie podejście jest prawidłowe?

_________________
http://www.ate-zbaszyn.eu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2014, o 21:29 
Offline
Moderator
Avatar użytkownika

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

No a jak ty byś chciał np do timera 8 bitowego wpisywać liczbę większą niż 255 ;) ??

poza tym daj sobie spokój z odmierzaniem SEKUNDY przez timer sprzętowy bo to jakaś mega strata :(

poczytaj sobie w Bluebooku o timerach programowych ;)

rozdział szczególnie:

"wstęp do systemów czasu rzeczywistego"

jak to zaskoczysz to wtedy dopiero zobaczysz ;) .... będzie odjazd

_________________
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  
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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO