• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Odtwarzanie trasy przejazdu robota - poprawność programu
#4
(06-01-2019, 15:33)BourbonKid napisał(a): Udało się zlikwidować problem wyjścia z pętli while. Powodem było operowanie przez kompilator zawartością rejestru pamięci, zamiast, zamiast odwoływać się do zawartości komórki pamięci (optymalizacja). Zastosowanie specyfikatora volatile do zmiennych A i B rozwiązało problem.
Takiej osobie to aż miło pomagać! Dałem wskazówki, poczytałeś, zrozumiałeś, wdrożyłeś, problem rozwiązany. Inni wyzywają mnie od durniów, narzekają, że nie chcę pomóc. Trzeba umieć odróżnić pomoc od zrobienia za kogoś roboty. U mnie koszt pomocy = 0zł, zrobienie roboty 100..200zł za godzinę (kilka razy taniej niż wypisanie recepty przez lekarza).

(06-01-2019, 15:33)BourbonKid napisał(a): Wracając do problemu błędnego odtwarzania drogi powrotu, to podejrzewam jedną przyczynę:
Impulsy z enkoderów są zliczane w podprogramach przerwać zewnętrznych. W  danym momencie może wykonywać się tylko jeden podprogram od jednego przerwania, ponieważ na czas procedury obsługi przerwania procesor wyłącza możliwość wystąpienia innych przerwań. Być może poszczególne zbocza z dwóch enkoderów nakładają się w czasie lub są oddalone od siebie o czas krótszy niż czas wykonania procedury przerwania i wtedy zliczenie impulsu z drugiego enkodera zostaje pominięte? Tylko jak taką sytuację wyeliminować?

Wracając do meritum sprawy. Jaka jest max częstotliwości przerwań z enkoderów? Zależnie od tego, jak jest napisana procedura (musiałbyś zobaczyc rozwinięcie ASM) INT można zliczać 20..50000tyś razy na sekundę (mierzyć 20..50kHz). Jak przerwania wystąpią równocześnie, to jedno z nich będzie wykonane później. W AVR można pozwolić na przerwanie w przerwaniu (deklaracja przerwania ISR_NOBLOCK albo INTERRUPT). Jeśli faktycznie problemem jest częstotliwość przerwań z enkoderów, licz sprzętowo używając timerów.


PS
Dodaj obsługę WDG.
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Odtwarzanie trasy przejazdu robota - poprawność programu - przez es2 - 06-01-2019, 17:19

Skocz do:


Przeglądający: 1 gości