Witam,
Układ działa przy wykorzystaniu ATiny4313, posiadam pewny pakiet danych który przesyłam przy wykorzystaniu programu RealTerm dla przykładu jest to ciąg ASCII tego typu:
51276550032250. Gdzie:
5 - adres urządzenia
127 - wypełnienie PWM
65500 - wartość dla przerwania TIMER1_COMPA
32250 - wartość dla przerwania TIMER1_COMPB
oraz oznaczenie końca jako: Enter 0x0D, 13.
Następnie korzystając z funkcji atoi, konwertuje odpowiednie elementy bufora w celu przekazani ich dalej do poszczególnych funkcji.
W celu weryfikacji poprawności konwersji dane ponownie wysłam na terminal, jednak jedynie oznaczenie adresu Slave pozostaje skonwertowane poprawnie a mianowicie liczba 5.
Funkcja odpowiadająca za wysłanie zmiennych na terminal:
A oto efekt pracy w terminalu:
Co może być powodem błędnej konwersji danych?
Układ działa przy wykorzystaniu ATiny4313, posiadam pewny pakiet danych który przesyłam przy wykorzystaniu programu RealTerm dla przykładu jest to ciąg ASCII tego typu:
51276550032250. Gdzie:
5 - adres urządzenia
127 - wypełnienie PWM
65500 - wartość dla przerwania TIMER1_COMPA
32250 - wartość dla przerwania TIMER1_COMPB
oraz oznaczenie końca jako: Enter 0x0D, 13.
Następnie korzystając z funkcji atoi, konwertuje odpowiednie elementy bufora w celu przekazani ich dalej do poszczególnych funkcji.
Kod: C / C++
W celu weryfikacji poprawności konwersji dane ponownie wysłam na terminal, jednak jedynie oznaczenie adresu Slave pozostaje skonwertowane poprawnie a mianowicie liczba 5.
Funkcja odpowiadająca za wysłanie zmiennych na terminal:
Kod: C / C++
A oto efekt pracy w terminalu:
Co może być powodem błędnej konwersji danych?