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



Teraz jest 20 mar 2026, o 11:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
Autor Wiadomość
PostNapisane: 4 gru 2015, o 11:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witam!
Mam problem z implementacją funkcjonalności programowego resetu w projekcie zegara GPS. Warunek sprawdzania stringa "AT+RST" (próbowałem dwa) umieszczam na początku funkcji parsującej dane z GPS. Terminal "zalewany" jest potokiem danych z GPS, ale spodziewanej odpowiedzi na AT+RST brak (mkBootLoader). Proszę o podpowiedź co należy zmienić lub jak inaczej podejść do problemu. Fragment kodu funkcji parsującej wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Pozdrawiam serdecznie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 11:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Kolego coś mi świta że ty na jednym UART podłączasz 2 urządzenia.
1 to GPS
2 to ATBWIFI lub ft232 lub jeszcze co innego

I za pomocą 1 UART w uC chcesz odbierać dane z PC i GPS czyli pomyśl co w tym momencie robisz ?

Wiem że do Swiąt lekko ponad 2 tygodnie ale ty robisz gwiazdę. A do czego służy UART czyli port szeregowy ?

Jeżeli tak to podłączasz to zainteresuj się np ATmega128 ona ma 2 UARTy jeszcze kilka innych mniejszych zapewne też.

Ale z gwiazdą to się wstrzymaj :) aż do świąt :)

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 11:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
Kolego coś mi świta że ty na jednym UART podłączasz 2 urządzenia.
1 to GPS
2 to ATBWIFI lub ft232 lub jeszcze co innego


W tym konkretnym przypadku do uC Atmega32 podłączony jest ATB-WiFi. Program wgrany do uC to program obsługi zegara GPS. GPS jest jednak odłączony do testów. Do bufora nic nie nadlatuje z GPS. Chciałem do programu dodać reset programowy. Oczekiwałem, że po wciśnięciu INFO w programie mkBootLoader do bufora wpadnie komenda AT+RST i wykona co trzeba, ale tak nie jest.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 16:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
Ale z gwiazdą to się wstrzymaj aż do świąt

Do Świąt nie wytrzymam. Proszę o pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 16:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

avrfun napisał(a):
umieszczam na początku funkcji parsującej dane z GPS. Terminal "zalewany" jest potokiem danych z GPS, ale spodziewanej odpowiedzi na AT+RST brak (mkBootLoader).


Po tym wnosze ze masz oba naraz podpiete uarty do uc bo skoro nadlatuja dane GPS a w nich nie widac AT+RST.

No ale ok.

Kolego a w mkbootloader zaznaczasz ze ma uzyc AT+RST ? Ppdajesz w MKB adres ip wifi by komputer sie z nim polaczyl ? Nawiazujesz polaczenie MKB z Wifi ?


Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 17:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
Kolego a w mkbootloader zaznaczasz ze ma uzyc AT+RST ? Ppdajesz w MKB adres ip wifi by komputer sie z nim polaczyl ? Nawiazujesz polaczenie MKB z Wifi ?
majster napisał(a):
Po tym wnosze ze masz oba naraz podpiete uarty do uc bo skoro nadlatuja dane GPS a w nich nie widac AT+RST.

No ale ok.

Kolego a w mkbootloader zaznaczasz ze ma uzyc AT+RST ? Ppdajesz w MKB adres ip wifi by komputer sie z nim polaczyl ? Nawiazujesz polaczenie MKB z Wifi ?


Bootloader zainstalowany. W ATB-WiFi pełny dostęp do modułu. Na czas testu z software reset gps odłączony, a do Tx i Rx uC podłączony tylko AtnelAir i ATBWiiFi. W tej samej kombinacji sprzętowej działa zegar NTP i pozyskuje czas z internetu i w nim implementacja software reset działa.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 17:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

avrfun napisał(a):
Obrazek



No ale przecież ci odczytało info o procku czyli AT+RST musiał się wykonać.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 17:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

avrfun napisał(a):
No ale przecież ci odczytało info o procku czyli AT+RST musiał się wykonać.


Tak, ale po wciśnięciu klawisza RESET na żądanie programu., niestety.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 17:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

No to musisz mieć jakiegoś babola w programie którego nie widać ...

skoro ci działa w dawcy czasu to gdzieś coś źle przeniosłeś do aktualnego projektu.

a dołączyłeś ? w 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.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 17:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
No to musisz mieć jakiegoś babola w programie którego nie widać ...


Proszę przejrzyj kod jeżeli będziesz tak miły, bardzo proszę:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 19:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Zaczynam go studiować będę tutaj uzupełniał na bieżąco to co mi w oko wpadnie ... a lepsi ode mnie bo jest ich 99% forum jak mogą niech też pomogą :)

Na początek usuń linię 6 z #include <avr/delay.h> co prawda nie zawadza ale biblioteka z avr przeniosła się do util a masz ją w 4 linii.

w pętli while masz coś jak get ntp event który jest uzależniony od timera itp

polecam w pętli while sprawdzać zdarzenie z uart jak używasz Mirka bibliotek to: UART_RX_STR_EVENT( uart_buf );

generalnie nigdy nie wpadnie ci ramka z wifi do get ntp event

ja bym stworzył jednąfunkcję:
UART_RX_STR_EVENT( uart_buf );

parsował dane odbioru i prawdzał czy to pochodzi z GPS czy WIFI
nie mniej i tak 2 urządzenia na jednym uarcie ci nie zadziałają no chyba że zabierzesz zasilanie modułowi GPS na starcie a uaktywnisz je 2 sekundy po starcie programu tak aby wifi przez pierwsze 2 sekundy miało zasilanie.... a jak podasz zasilanie do GPS to zabierasz dla WIFI

w ten sposób będziesz miał 2 urządzenia na 1 uarcie ale tylko jedno z nich w danym czasie by działało.

Za dużo masz funkcji w jednym pliku pomieszanych od różnych modułów przez co kod staje się mało czytelny i sam zaczynasz się w nim mieszać a co dopiero ktoś kto go widzi po raz pierwszy.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 20:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
Za dużo masz funkcji w jednym pliku pomieszanych od różnych modułów przez co kod staje się mało czytelny i sam zaczynasz się w nim mieszać a co dopiero ktoś kto go widzi po raz pierwszy.

Dzięki wielkie za zainteresowanie. Zdaję sobie sprawę, że kod jest bardzo przerośnięty, ale powstawał od kwietnia i rozrastał się wraz z "lekturą" poradników Mirka. Wszystko działa bardzo sprawnie i nieblokująco oprócz resetu programowego, który chciałem zaimplementować jedynie na potrzebę programowania zdalnego.
majster napisał(a):
w ten sposób będziesz miał 2 urządzenia na 1 uarcie ale tylko jedno z nich w danym czasie by działało.

Docelowo ma być tak. Gdzieś w pokoju stoi zegar gps z modułem Atnel WiFi. Odłączam gps. Podłączam WiFi. Wprowadzam zmiany w programie i wpisuję je zdalnie do zegara. Odłączam WiFi. Podłączam gps. Nie mam jeszcze nawet pomysłu jak to zrealizować programowo i zdalnie.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 21:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

avrfun napisał(a):
Nie mam jeszcze nawet pomysłu jak to zrealizować programowo i zdalnie.


No to jeszcze raz powtórzę jak bym zrealizował połączenie nawet gdy podłączone będą oba urządzenia GPS i WIFI

majster napisał(a):
ja bym stworzył jedną funkcję:
UART_RX_STR_EVENT( uart_buf );

parsował dane odbioru i prawdzał czy to pochodzi z GPS czy WIFI
nie mniej i tak 2 urządzenia na jednym uarcie ci nie zadziałają no chyba że zabierzesz zasilanie modułowi GPS na starcie a uaktywnisz je 2 sekundy po starcie programu tak aby wifi przez pierwsze 2 sekundy miało zasilanie.... a jak podasz zasilanie do GPS to zabierasz dla WIFI

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 21:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

To jest znakomity pomysł. Obecnie jednak funkcja sprawnie parsuje dane z gps, a po jego odłączeniu gdy próbuję coś wpisać do bufora (np. AT+RST?) - echa w terminalu brak. Chciałby wiedzieć dlaczego dane z gps "wchodzą" do bufora, a z programu mkBootLoader nie. W którym miejscu programu zrobić pułapkę, debugger jednodiodowy, aby to sprawdzić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 22:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

nie czepiaj się kolego programu a tego jak skonfigurowałeś ATB WIFI pokaż no konfiguracje

co do debuggera ... tam gdzie chcesz odebrać dane .... jak cokolwiek odbierze niech zmieni swój stan na przeciwny.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 22:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

ObrazekObrazekObrazek
ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 22:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

A dlaczego masz UDP SERVER wydaje mi sie zo puwinien byc CLIENT

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2015, o 23:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
A dlaczego masz UDP SERVER wydaje mi sie zo puwinien byc CLIENT


Z ustawieniem CLIENT nie działa wcale, niestety (sprawdziłem).

------------------------ [ Dodano po: 3 minutach ]

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


W linii 16 dioda nie zmienia stanu w odpowiedzi na polecenie AT+RST? z programu mkBootLoader.
W linii 40 dioda zmienia stan co zadany okres synchronizacji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2015, o 10:41 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

W module nie masz ustawionej bramy i dns server.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2015, o 12:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Rafał555 napisał(a):
W module nie masz ustawionej bramy i dns server.


Dzięki za zwrócenie uwagi. Przy zmianie SERVER na CLIENT się zgubiło. Teraz jest poprawnie jak przed zmianami. DNS i brama ustawione. To nie rozwiązuje problemu. Nadal brak resetu software. Jak przekazać komendę AT+RST z mkBootLoadera do mojego programu? Dane z gps wchodzą do bufora, a z modułu WiFi nie.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2015, o 16:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Bardzo proszę jeszcze raz o sugestię w sprawie niedziałającego software reset w moim programie.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2015, o 08:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witam!
Problem rozwiązałem po analizie prędkości ustawionej w bibliotece UART. GPS-4800. ATB-WIFI-115200. "Fizyczna" zamiana GPS na ATB-WIFI nastąpiła, ale nie zmieniłem prędkości w bibliotece mkuart.h. Po zmianie na 115200 moduł prawidłowo odbiera komendy AT. Teraz zastanawiam się nad obsługą 2xUART np. w Atmega644. Na UART1 odbieram dane z GPS, a na UART2 nasłuchuję komend. Pojawienie się komendy AT-RST? w UART2 ma skutkować resetem programu i możliwością zdalnego programowania. Jak realizuje się obsługę dwóch UARTów (4800 i 115200)?
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2015, o 10:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

avrfun napisał(a):
Jak realizuje się obsługę dwóch UARTów (4800 i 115200)?
Pozdrawiam


Na uC który ma 2 UARTy lub jak wyżej opisałem.


Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2015, o 11:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
Na uC który ma 2 UARTy lub jak wyżej opisałem.


Rozumiem ideę. Myślę nad stroną programistyczną. Czy dublować wszystkie zdarzenia dla UART i funkcje callback (np. parse_uart_data_gps i parse_uart_data_wifi) i czy potrzebne są dwie biblioteki mkuart1.h i mkuart2.h oddzielnie dla każdego interfejsu, bo jak inaczej wpisać dwie prędkości UART? Nigdy nie korzystałem z 2 UARTów. Muszę się nauczyć :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2015, o 13:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

avrfun napisał(a):
majster napisał(a):
Na uC który ma 2 UARTy lub jak wyżej opisałem.


Rozumiem ideę. Myślę nad stroną programistyczną. Czy dublować wszystkie zdarzenia dla UART i funkcje callback (np. parse_uart_data_gps i parse_uart_data_wifi) i czy potrzebne są dwie biblioteki mkuart1.h i mkuart2.h oddzielnie dla każdego interfejsu, bo jak inaczej wpisać dwie prędkości UART? Nigdy nie korzystałem z 2 UARTów. Muszę się nauczyć :)


Zerknij np tutaj:

topic2637.html
topic10653.html

Znalazłem to w 15 sekund w google wpisując

obsługa 2 uart avr

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2015, o 13:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

majster napisał(a):
Znalazłem to w 15 sekund w google wpisując

obsługa 2 uart avr

Bardzo dziękuję i pozdrawiam



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

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