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

Bascom TIMER2 - zliczanie - miernik częstotliwości

guest666 24 Mar 2014 12:02 2649 10
  • #1 13437488
    guest666
    Poziom 12  
    Witam
    Problem następujący...
    Program ma liczyć imulsy, a dokładnie mierzy częstotliwość.
    Wszystko chodzi jeśli wybiorę zamiast TIMERA2 - TIMER1, ale ja musze to zrobić na TIMER2.
    Pozniżej kod:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #2 13437689
    Konto nie istnieje
    Poziom 1  
  • #3 13437801
    M. S.
    Poziom 34  
    Timer2 jest nieco inny niż Timer1.
    Timer2 w M8 może pobierać sygnał zegarowy z oscylatora taktującego procesor bądź z kwarcu małej częstotliwości. Spróbuj dodać do Config Timer2 ASYNC = OFF . Skieruje to do Timera 2 sygnał zegarowy generatora uC.
    P. S. Jak chcesz sprawdź to sobie ustawieniach rejestrów. Mnie się nie chciało.
    Poczytaj sobie helpa.
    No i to co poprzednik napisał. Timery 0 i 2 są ośmiobitowe (0-255), a jedynka 16 bitowy.
  • #4 13438000
    guest666
    Poziom 12  
    M. S. napisał:
    Timer2 jest nieco inny niż Timer1.
    Timer2 w M8 może pobierać sygnał zegarowy z oscylatora taktującego procesor bądź z kwarcu małej częstotliwości. Spróbuj dodać do Config Timer2 ASYNC = OFF . Skieruje to do Timera 2 sygnał zegarowy generatora uC.
    P. S. Jak chcesz sprawdź to sobie ustawieniach rejestrów. Mnie się nie chciało.
    Poczytaj sobie helpa.
    No i to co poprzednik napisał. Timery 0 i 2 są ośmiobitowe (0-255), a jedynka 16 bitowy.


    A nie ma ktoś gotowca na pomiar częstotliwości z wykorzystaniem TIMER0 i TIMER2?
    Już mnie powoli trafia.... ehh
  • #5 13438027
    M. S.
    Poziom 34  
    Przeanalizuj to:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Operuje to jednak na Timer0 i Timer1. Zamienić by można Timer1 na Timer2 po podpięciu do M8 kwarcu zegarkowego 32768Hz. i puszczeniu T2 na tym kwarcu - ASYNC=ON

    Poczytaj w helpie do Bascoma o Config Timer2
  • #6 13438029
    guest666
    Poziom 12  
    Kolego...tak jak pisałem z TIMER1 nie ma problemu!
    Z TIMER2 jest problem....
  • #7 13438083
    M. S.
    Poziom 34  
    Zamiast Config Timer1 wstaw:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Przerwanie nastąpi co sekundę.

    Później
    zamiast
    Kod: text
    Zaloguj się, aby zobaczyć kod

    wstaw
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Powinien działać. No i kwarc zegarkowy 32768Hz do TOSC1 i TOSC2 (Pin 9 i 10).
  • #8 13439260
    Konto nie istnieje
    Poziom 1  
  • #9 13440321
    M. S.
    Poziom 34  
    Trzeba tu zaznaczyć, że metoda zliczania impulsów w czasie nie jest tożsama, pod względem efektów, z pomiarem czasu między kolejnymi impulsami.
    Pierwsza metoda nadaje się do wyższych częstotliwości, a druga do niższych. Problem tkwi w rozdzielczości pomiaru i szybkości uzyskania wyniku.
    Licznik AVR'a reaguje na impulsy o częstotliwości maksymalnej niższej niż połowa częstotliwości taktowania. Przykładowo przy takich częstotliwościach czas pomiędzy kolejnymi impulsami to nieco ponad 2 takty, a 4 takty to aż dwukrotne zmniejszenie częstotliwości. Przy częstotliwościach rzędu pojedynczych Herców sytuacja jest odwrotna. Pomiar polegający na zliczaniu impulsów w czasie z rozdzielczością choćby 8 bitów trwałby za długo jak na nasze oczekiwania.
  • #10 13440709
    guest666
    Poziom 12  
    Witam
    Kompilator nie rozpoznaje mi polecenia:
    Enable OC2
    On OC2 T2_isr

    Nie wie co to OC2

    a dokładniej:
    Unknow interupt source [OC2]

    Dodano po 1 [godziny] 27 [minuty]:

    Witam
    Poniżej rozwiązanie...
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #11 13443226
    Konto nie istnieje
    Poziom 1  
REKLAMA