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.

Atmega16 enkoder i usart, przerwania, INT0, RS232.

cienio123 15 Lis 2009 01:35 1749 1
  • #1 15 Lis 2009 01:35
    cienio123
    Poziom 9  

    Witam.
    Do Atmegi mam podłączony enkoder z drukarki na INT0 (obsługuje przerwanie).
    oraz rs232 , który komunikuje się z aplikacją na PC(też przerwanie).

    Opcja pierwsza:
    czytam dane z enkodera manualnie : mam o programie guzik "daj dane".
    Gdy kręcę enkoderem jak szalony to w lewo to w prawo a potem wciskam guzik "daj dane" to dostaje to co trzeba - znaczy się jest git.

    Opcja druga:
    Czytam dane z enkodera cyklicznie z automatu np. 20 razy na sekundę.
    Wtedy jest klapa- dostaje złe dane.

    Atmega na wew. kwarcu-8MHz,
    prędkość RS'a 19200.
    Rozmiar ramki: 12 znaków.
    Tarcza enkodera: 1800CT. Obsługuje przerwania z 0->1 i z 1->0 co daje razem 3600 przerwań na obrót.

    Niby przerwania INT są ważniejsze niż USART. Mylę się?
    Pozdrawiam.

    0 1
  • #2 15 Lis 2009 22:27
    cienio123
    Poziom 9  

    Rozwiązanie było proste!
    Wystarczyło dopisać sei(); w funkcji obsługującej przerwanie USART

    Ciekawe jak sprawa będzie wyglądać gdy podłącze drugi enkoder (po potrzebuje dwóch)?

    0