Witam,
Potrzebuję odczytać 32 enkodery podpięte do mikrokontrolera przez rejestry 74HC165. Odczyt z rejestrów odbywa się przez sprzętowe SPI z częstotliwością 1MHz. Problem polega na przetworzeniu tych danych. Jak się za to zabrać? Myślałem nad odczytem rejestrów do globalnych zmiennych w przerwaniu, a następnie przetwarzanie tych danych w głównej pętli programu (pisząc przetwarzanie mam na myśli zamianę sygnałów z enkoderów na kierunek obrotu/zwiększanie bądź zmniejszanie danej zmiennej). Tutaj pojawia się problem, że na czas wykonywania tej funkcji wypadałoby wyłączyć obsługę przerwań (bo byłyby one dość częste), ale nie wiem czy wtedy będę miał "wystarczająco świeże dane" żeby obsłużyć enkodery. Do tego dochodzi problem niwelacji drgań styków. Najchętniej zdecydowałbym się tutaj na filtr RC lowpass, żeby jeszcze bardziej nie komplikować programu. Czy ktoś spotkał się kiedyś z takim problemem? Byłbym wdzięczny za jakiekolwiek naprowadzenie na odpowiedni sposób podejścia do tego.
Z góry dziękuje za poświęcony czas,
Pozdrawiam, esane
Potrzebuję odczytać 32 enkodery podpięte do mikrokontrolera przez rejestry 74HC165. Odczyt z rejestrów odbywa się przez sprzętowe SPI z częstotliwością 1MHz. Problem polega na przetworzeniu tych danych. Jak się za to zabrać? Myślałem nad odczytem rejestrów do globalnych zmiennych w przerwaniu, a następnie przetwarzanie tych danych w głównej pętli programu (pisząc przetwarzanie mam na myśli zamianę sygnałów z enkoderów na kierunek obrotu/zwiększanie bądź zmniejszanie danej zmiennej). Tutaj pojawia się problem, że na czas wykonywania tej funkcji wypadałoby wyłączyć obsługę przerwań (bo byłyby one dość częste), ale nie wiem czy wtedy będę miał "wystarczająco świeże dane" żeby obsłużyć enkodery. Do tego dochodzi problem niwelacji drgań styków. Najchętniej zdecydowałbym się tutaj na filtr RC lowpass, żeby jeszcze bardziej nie komplikować programu. Czy ktoś spotkał się kiedyś z takim problemem? Byłbym wdzięczny za jakiekolwiek naprowadzenie na odpowiedni sposób podejścia do tego.
Z góry dziękuje za poświęcony czas,
Pozdrawiam, esane