Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino UNO - Jak policzyć Atmega 328p

rafal316 17 Maj 2015 21:17 564 2
  • #1 17 Maj 2015 21:17
    rafal316
    Poziom 13  

    Witam
    Zaczynam zabawę z Arduino, próbuję opanować trochę teorii.
    Chodzi mi o to aby łopatologicznie ktoś wyjaśnił mi jakie "prawa" rządzą np takim wyliczeniem.

    ATmega 328p do niej dołączony dwukanałowy enkoder optyczny (np 1000 imp/obrót) na tej bazie robimy licznik góra/dół który po zliczeniu 1000 impulsów daje nam informacje że wykonano 1 obrót i tak dalej (oczywiście +- prawo, lewo).
    Chcę wyliczyć z jaką maksymalną prędkością będę mógł obracać osią enkodera aby układ poprawnie liczył.

    0 2
  • Pomocny post
    #2 17 Maj 2015 21:34
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nie da się tego precyzyjnie wyliczyć. Dekodowanie impulsów z enkodera na M328 odbywa się programowo - np. tak, że impulsy z jednego kanału generują przerwania (nie jest to idealne rozwiązanie, ale na początek nie komplikujmy). W efekcie to jak często mogą się one pojawiać zależy od czasu jaki MCU spędza w funkcji obsługi tego przerwania, ale także od innych funkcji przerwań, które blokują procesor. Zakładając, że handler przerwania będzie wykonywany przez 500 taktów, a MCU jest taktowany zegarem 16 MHz daje ci to możliwość obsłużenia 16000000/500=32 tys. przerwań (impulsów) na sekundę. Dużo więcej niż potrzeba w większości przypadków. Jeśli to za mało to można skorzystać z MCU posiadającego sprzętowy dekoder kodu Graya.

    2
  • #3 17 Maj 2015 22:21
    rafal316
    Poziom 13  

    Dzięki.
    Mniej więcej załapałem o co chodzi ale widzę że jeszcze dłuuuuga droga nim to wszystko załapie.

    1