Sheppard25 Napisano 7 września Udostępnij Napisano 7 września (edytowany) Cześć, Postanowiłem napisać post z uwagi na to, że już drugi dzień się z tym męczę i nie mam pomysłu. Debugowanie czegokolwiek w AVR nie jest dla mnie proste 🙂 1. Wysyłam dane zakodowane w Manchester co 5 sekund i one są wysyłane poprawnie i odbierane przez odbiornik również poprawnie. 1 bit to ok. 1ms. W analizatorze logicznym jest to czasami kilka mikrosekund więcej lub mniej ale jak rozumiem, tak działają prawa fizyki i nigdy nie otrzymamy idealnie równych stanów. Teraz chciałbym je po prostu przekonwertować z powrotem na bajty ASCII. 2. Próbkuję sygnał z timerem, który wywołuje przerwania co około 0,496ms czyli w założeniu 2 razy na bit. 3. Niestety zauważyłem, że za każdym razem w jednym miejscu bity są przekłamane w stosunku do tego co dostaję na UART. Preambuła prawie do końca przychodzi poprawnie, natomiast potem jest błąd, następnie nadal jest okej. Totalnie nie wiem z czego to może wynikać. Pomyślałem, że może przez to, że jednak te stany nie trwają idealną 1ms przez co po pewnym czasie może się zdarzyć, że nie 2 a 3 przerwania przypadną na 1 zmiane sygnału Manchester, nastąpi jakby przeskok albo, że UART wprowadza jakiś delay przy wysyłaniu, który potem powoduje, że pierwszy bit jest wysyłany niepoprawny mimo, że bez UART byłby odczytany poprawnie (tyle ze bez UART nie mam jak debugowac na biezaco). Czasami ten bit po zmianie timera przeklamuje nieco inaczej ale zwykle zawsze w tym samym miejscu. 4. Kolejnym problemem jest to, że UART ignoruje jakby to co znajduje się w warunku w linii 88 Receiver.cpp. Printuje mi zera jeszcze przed pierwsza wiadomoscia mimo ze zgodnie z tym warunkiem nie powinien poniewaz ma state ustawiony na WAITING_FOR_PREAMBULE https://github.com/sheppard30/Czujnik-wilgotnosci---odbiornik Bede wdzieczny za pomoc, pozdrawiam Edytowano 7 września przez Sheppard25 Link do komentarza Share on other sites More sharing options...
etet100 8 września Udostępnij 8 września Ten analizator nie ma więcej kanałów? Najlepiej w ten sposób zwizualizować zmiany stanów odbiornika. W odpowiednich momentach zmieniasz stany na nieużywanych wyjściach kontrolera. Zegar nie jest jakoś synchronizowany z początkiem pakietu? Trzeba by było wykrywać pierwszą zmianę stanu. Link do komentarza Share on other sites More sharing options...
Sheppard25 8 września Autor tematu Udostępnij 8 września Przed chwilą, etet100 napisał: Ten analizator nie ma więcej kanałów? Najlepiej w ten sposób zwizualizować zmiany stanów odbiornika. W odpowiednich momentach zmieniasz stany na nieużywanych wyjściach kontrolera. Zegar nie jest jakoś synchronizowany z początkiem pakietu? Trzeba by było wykrywać pierwszą zmianę stanu. @etet100 ma ma, tylko mialem problem z uruchomieniem go. Musialem zainicjowac pin dla drugiego kanału poza konstruktorem Receivera bo z jakiegos powodu bylo to dla mikrokontrolera za wczesnie. Testuje troche inne podejscie, zobaczymy Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »