logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega16 enkoder i usart, przerwania, INT0, RS232.

cienio123 15 Lis 2009 01:35 2022 1
REKLAMA
  • #1 7262019
    cienio123
    Poziom 10  
    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.
  • REKLAMA
  • #2 7266408
    cienio123
    Poziom 10  
    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)?
REKLAMA