Witam próbuje skomunikować dwie atmegi (ATmega32A i ATmega32) po uarcie, ale nie do końca mi to wychodzi. Mianowicie problem wygląda następująco:
Posiadam dwa moduły do komunikacji bezprzewodowej miface1b oparte o ATmege32 oraz płytkę stykową z ATmegą32A. Pojedynczy znak za pośrednictwem terminala i przejściówki USB<=>UART wysyłam przez jeden moduł, drugi moduł po odebraniu przesyła przez UART dane do mojej ATmegi32A. Na pokładzie uC siedzi najprostszy program "echo+1", dane odsyłane tym samym torem nie wracają w takiej formie jaką bym sobie życzył. Wysyłając znak np. "1" odbieram symbol "ć". Odebrane dane nie są losowe, "1" daje zawsze w odpowiedzi "ć", "5" oraz "6" daje zawsze "ó".
Przy pomocy drugiego terminala i przejściówki USB<=>UART podglądałem po kolei co dzieje się z wysyłanym przeze mnie znakiem. Wysyłając "1":
- bezpośrednio z przejściówki wychodzi "1",
- po przesłaniu torem radiowym odebrany symbol to "1",
- po przetworzeniu przez program echo+1 dostaję "2",
- i tu pojawia się problem, symbol "2" wraca UARTEM do modułu radiowego i z drugiej strony pojawia się jako nasze "ć".
Z tego wnioskuję, że problem leży właśnie w tym miejscu.
Moduły radiowe działają na oprogramowaniu od producenta, pojedyncze znaki przesyłają miedzy sobą bez żadnych problemów w obie strony.
Próbowałem zamieniać moduły miejscami, podłączałem cały układ do jednego zasilania (wspólna masa dla każdego układu).
Kod programu "echo+1":
Nie mam pomysłu jak to naprawić...
Posiadam dwa moduły do komunikacji bezprzewodowej miface1b oparte o ATmege32 oraz płytkę stykową z ATmegą32A. Pojedynczy znak za pośrednictwem terminala i przejściówki USB<=>UART wysyłam przez jeden moduł, drugi moduł po odebraniu przesyła przez UART dane do mojej ATmegi32A. Na pokładzie uC siedzi najprostszy program "echo+1", dane odsyłane tym samym torem nie wracają w takiej formie jaką bym sobie życzył. Wysyłając znak np. "1" odbieram symbol "ć". Odebrane dane nie są losowe, "1" daje zawsze w odpowiedzi "ć", "5" oraz "6" daje zawsze "ó".
Przy pomocy drugiego terminala i przejściówki USB<=>UART podglądałem po kolei co dzieje się z wysyłanym przeze mnie znakiem. Wysyłając "1":
- bezpośrednio z przejściówki wychodzi "1",
- po przesłaniu torem radiowym odebrany symbol to "1",
- po przetworzeniu przez program echo+1 dostaję "2",
- i tu pojawia się problem, symbol "2" wraca UARTEM do modułu radiowego i z drugiej strony pojawia się jako nasze "ć".
Z tego wnioskuję, że problem leży właśnie w tym miejscu.
Moduły radiowe działają na oprogramowaniu od producenta, pojedyncze znaki przesyłają miedzy sobą bez żadnych problemów w obie strony.
Próbowałem zamieniać moduły miejscami, podłączałem cały układ do jednego zasilania (wspólna masa dla każdego układu).
Kod programu "echo+1":
Kod: C / C++
Nie mam pomysłu jak to naprawić...
