Odmierzanie czasu w mikrokontrolerze bez użycia timera

Odmierzanie czasu w mikrokontrolerze bez użycia timera

W większości aplikacji związanych z mikrokontrolerami jednym z kluczowych zadań jest odmierzanie czasu. Najczęściej wykorzystuje się do tego zadania układy timerów wbudowane w strukturę CPU, ale z drugiej strony każdy mikrokontroler ma ich ograniczoną ilość, a ponadto przeważnie potrzebne są do zadań związanych z precyzyjnymi pomiarami czasu rzeczywistego. A co, jeśli w strukturę wbudowane są 3 timery, a jest konieczność użycia 5? Inną sprawą jest odmierzanie długich czasów (np. timeout), dla których to specjalnie trzeba budować łańcuchy programowych liczników. A przecież nie zawsze wymagania aplikacji są aż tak mocno wygórowane. Czasami wystarczy odmierzenie czasu w okolicach 1s, a nie dokładnie 1s. Omawiane wyżej problemy rozwiązuje prosty układ pokazany na rysunku 1. Używa on rezystora, kondensatora, bramki Schmitta, wyjścia mikrokontrolera oraz jego wejścia przerwania. Najlepiej jest, jeśli będzie to przerwanie wywoływane zmianą sygnału. Nie mniej jednak, prosta modyfikacja polegająca na włączeniu równolegle z rezystorem diody w kierunku zależnym od wymaganego poziomu logicznego powoduje, że może to być również wejście przerwania wyzwalanego zboczem narastającym lub opadającym. Czas, po którym generowane jest przerwanie łatwo jest zmienić dobierając odpowiednie komponenty R i C. Zasada działania jest bardzo prosta. Kondensator elektrolityczny ładowany lub rozładowywany jest przez rezystor z użyciem portu I/O. Napięcie na kondensatorze zmieniając się powoduje zadziałanie bramki Schmitta. Bardzo dobrze widać to na oscylogramie na rysunku 2. Przebieg piłokształtny, to napięcie na kondensatorze, natomiast prostokątny, to wyjście bramki 74HC14. Jeśli wejście przerwania mikrokontrolera ma bramkę Schmitta, to w niskobudżetowej aplikacji można pominąć 74HC14. Zanim jednak uruchomimy produkcję seryjną, to dobrze jest skrupulatnie sprawdzić takie rozwiązanie. Trzeba też liczyć się z tym, że takie uproszczone rozwiązanie jest też znacznie trudniej przetestować.

Rysunek 1. Schemat prostego układu odmierzania czasu

Rysunek 2. Oscylogram z oscyloskopu dwukanałowego pokazujący przebiegi w układzie. Przebieg prostokątny, to wyjście bramki 74HC14, natomiast trójkątny, to napięcie na kondensatorze. Okres przebiegu prostokątnego jest równy 10,4s. 

 

 

http://www.tomaszbogusz.blox.pl/

Dodaj nowy komentarz

Zawartość pola nie będzie udostępniana publicznie.