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

enkoder rozpoznianie kierunku

kamibiz 31 Maj 2011 22:45 1736 9
REKLAMA
  • #1 9564512
    kamibiz
    Poziom 9  
    Witam,
    zbudowałem enkoder przy użyciu transoptorów refleksyjnych.Wszystko działa tak jak oczekiwałem i postanowiłem zabrac sie za napisanie programu w C który zlicza impulsy, a także rozróżnia kierunki. Konkretnie chodzi mi o to, aby rozróżnic dla kanałów A i B dla obrotu w prawo zmianę stanów z 11 na 01, dla obrotu w lewo zmianę z 11 na 10. Testując układ na obecnym programie zasłaniając zupelnie jeden transoptor uklad zlicza w góre, natomiast zakrywajac drugi zlicza w dół.
    Prosiłbym o pomoc

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    [/code]
  • REKLAMA
  • #2 9564536
    Dżyszla
    Poziom 42  
    Pod względem logicznym program jest poprawny - zliczenie powinno nastąpić w momencie odsłonięcia wcześniej zasłoniętego kanału. Więc może zdebuguj i sprawdź, co się dzieje z wartościami, czy aby przypadkiem nie ma tak, że urządzenie po zasłonięciu daje w programie efekt fali prostokątnej, czyli ciągłego przełączania się stanu.
  • REKLAMA
  • #3 9564565
    kamibiz
    Poziom 9  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    uzycie tego zapisu pozwoliło mi pozbyc sie ciagłego zliczania impulsów
    po prostu jesli na kanale A jest zmiana z L na H i na kanałe B stan H to tarcza porusza sie w prawo natomiast jesli na B stan L to w lewo, nie wiem tylko jak to sprytnie zrealizowac programowo
  • REKLAMA
  • REKLAMA
  • #8 9566812
    Dżyszla
    Poziom 42  
    Wykrywanie zboczy zawsze nalezy realizować od wejścia w stan początkowy i oczekiwania na wyjście (czyli tu pętla nic-nie-robiąca).
    Grunt to dobrze rozpisać sobie algorytm ;)

    Wystarczy kliknąć przycisk "pomógł" ;) Powodzenia!
  • #9 9567407
    janbernat
    Poziom 38  
    Z tym że jeśli kółko czy co tam bądź się nie kręci i program wejdzie w while() to procesor będzie służył wyłącznie do obsługi enkodera i nic innego nie będzie w stanie zrobić.
  • #10 9568121
    dondu
    Moderator na urlopie...
    Dżyszla napisał:
    Wykrywanie zboczy zawsze nalezy realizować od wejścia w stan początkowy i oczekiwania na wyjście (czyli tu pętla nic-nie-robiąca).

    ??? :o
    Mocno polemizował bym z tym stwierdzeniem. Takie podejście jak już napisał janbernat ma swoją istotną wadę, a ja dodam, że na pewno nie jest to rozwiązanie, które należy stosować, a już na pewno nie tak jak radzisz czyli zawsze.

    Znacznie bardziej użyteczne są:
    - korzystanie z zewnętrznych przerwań
    - korzystanie z timerów skanujących
    - i pewnie jeszcze kilka innych sposobów
REKLAMA