Witam,
Stworzyłem przetwornik do pomiarów kątów w przestrzeni. Z procesora Atmega 328p-pu (zewnetrzy kwarc 16MHz, BaudRate 9600) wysyłam ramkę:
Po stronie odbiorczej napisaną mam aplikację w Visual C# Express. Tam dane rozdzielam do tablicy dane na podstawie przecinka.
Jednak Co jakiś czas pojawiają się błędne w postaci np. :
W tym przypadku widać błąd w [2] . Czy błędy te wynikają z niedopasowania Baudrate (ubrr?) do częstotliwości procesora? W jaki sposób zabezpieczyć się przed błędną ramką, aby nie była brana pod uwagę? Wprowadzić sumę kontrolną? Detekcje niepoprawnej sumy kontrolnej realizować na mikroprocesorze?
--------------------
Inna sprawa:
Stworzyłem wskaźnik graficzny kompasu, jednak przy przeskoku z ekstremalnej wartości 359 stopni na 0 i odwrotnie, nie wykonuje obrotu o jeden stopień lecz robi obrót ("na około") tzn. przelatuje cały obrót w drugą stronę do tej wartości.
Stworzyłem przetwornik do pomiarów kątów w przestrzeni. Z procesora Atmega 328p-pu (zewnetrzy kwarc 16MHz, BaudRate 9600) wysyłam ramkę:
Kod: C / C++
Po stronie odbiorczej napisaną mam aplikację w Visual C# Express. Tam dane rozdzielam do tablicy dane na podstawie przecinka.
Kod: C#
Jednak Co jakiś czas pojawiają się błędne w postaci np. :
Kod: C#
W tym przypadku widać błąd w [2] . Czy błędy te wynikają z niedopasowania Baudrate (ubrr?) do częstotliwości procesora? W jaki sposób zabezpieczyć się przed błędną ramką, aby nie była brana pod uwagę? Wprowadzić sumę kontrolną? Detekcje niepoprawnej sumy kontrolnej realizować na mikroprocesorze?
--------------------
Inna sprawa:
Stworzyłem wskaźnik graficzny kompasu, jednak przy przeskoku z ekstremalnej wartości 359 stopni na 0 i odwrotnie, nie wykonuje obrotu o jeden stopień lecz robi obrót ("na około") tzn. przelatuje cały obrót w drugą stronę do tej wartości.
Kod: C#
