Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Język C funkcja przerzutnika monostabilnego pod licznik

Andrzej Ł 09 Apr 2017 21:03 594 1
  • #1
    Andrzej Ł
    Level 21  
    Jestem początkującym z programowaniu w C.Opiszę problem :
    Zbudowałem licznik zwojów do nawijarki na ATMEGA 8 . Licznik liczy zwoje przy pomocy optobariery szczelinowej i tarczy z dziurką(czyli zliczanie gdy na wejściu stan niski) liczy w przód i w tył(przy odwijaniu).
    Jedno wejście ATMEGi zlicza impulsy (PULSELOW) , drugie to wejście sterujące aby zmieniać kierunek liczenia (REVCOUNT).
    4 Wyświetlacze 7 seg-LED.
    Funkcja zliczania jest realizowania w trakcie przerwania , które służy do obsługi multipleksowania wyświetlaczy.
    Wszystko działa pięknie ale jest jeszcze mały problem który muszę rozwiązać:
    Impuls wejściowy musi być krótki a w zasadzie reakcja na zbocze gdyż zdarza się tak że jeżeli impuls jest za długi na skutek wolnych obrotów albo tarcza zatrzyma się na dziurce to licznik cały czas zlicza .
    Potrzebuję ograniczenia czasu pomiaru ,myślę że to powinno wyglądać mniej więcej tak (coś ala przerzutnik monostabilny):

    1. Występuje przerwanie ,sprawdzenie wejścia czy jest PULSELOW /czas drgania styków-licznik ++ (albo-- jeśli REVCOUNT).
    Przy następnym przerwaniu trzeba by sprawdzić czy nadal PULSELOW ,jeśli tak to zblokować zliczanie aż do pojawienia się ponownego stanu wysokiego.Wstawiam fragment kodu jaki napisałem do zliczania impulsów.
    Ew jakieś sugestie czy może zrealizować zliczanie na własnym przerwaniu ?
    Szukałem na forum rozwiązania , nic takiego nie znalazłem, ktoś miał podobny problem w bascomie , a że nie uzyskał pomocy to wstawił monoflop na NE555.

    Code: c
    Log in, to see the code