eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR i pomiar okresu › Re: AVR i pomiar okresu
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
    From: "Zibias" <q...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: AVR i pomiar okresu
    Date: Thu, 10 Sep 2009 22:46:18 +0200
    Organization: http://onet.pl
    Lines: 48
    Message-ID: <h8boj6$s2m$1@news.onet.pl>
    References: <h8bjvm$s5p$1@inews.gazeta.pl> <h8bn8j$gil$1@inews.gazeta.pl>
    <h8bnls$jk0$1@inews.gazeta.pl>
    NNTP-Posting-Host: 195.82.178.17
    X-Trace: news.onet.pl 1252615590 28758 195.82.178.17 (10 Sep 2009 20:46:30 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Thu, 10 Sep 2009 20:46:30 +0000 (UTC)
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5843
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
    X-RFC2646: Format=Flowed; Response
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:571149
    [ ukryj nagłówki ]


    Użytkownik "Dariusz Zolna" <a...@u...com> napisał w wiadomości
    news:h8bnls$jk0$1@inews.gazeta.pl...
    Konop pisze:
    > A jak zbocza sygnału?? Ostre?? Bo bez tego, to możesz mieć różny moment
    > wejścia do przerwania... w czym piszesz? w C czy w gołym ASM? Są jakieś
    > fragmenty kodu, na czas których blokujesz przerwania??
    > Spróbuj od razu po wejściu do procedury przerwania przełączać jakiś pin...
    > ciekawy jestem,czy ten przebieg też będzie stabilny...
    > I napisz jeszcze z jaką częstotliwością popędzasz ten timer....


    Sygnał jest uformowany, zbocza ostre. Piszę w gcc, przerwań nie blokuję
    niczym innym oprócz ich własnych procedur. Kwarc 16MHz, dzielnik 256,
    czyli zegar taktuję 62500Hz.
    Z tym przełączaniem pinu dobry patent, podepnę drugi kanał i sprawdzę co
    się dzieje.

    Dariusz Żołna

    Myślę, że najprościej to nie odejmować TCNT1, tylko odczytywać,
    a dokładniej przepisać do pamięci, po czym wyzerować
    TCNT1 i wyjść z obsługi przerwania. Licznik liczy od zera wtedy.

    Druga ważna sprawa, TCNT1 jest 16bitowym czyli masz max 65535 zliczeń.
    Trzeba tak dobrać preskaler zegara, żeby dla tych 2kHz liczba zliczeń
    taktów zegarowych była "spora" czyli w okolicach powiedzmy 60000.
    Nie napisałeś jaki masz zegar w tym ATmega. Najlepiej jakiś stabilny
    kwarc. Masz do wyboru podział na: 1,8,64,256,1024

    Zakładając, ze masz zegar 8MHz to okres dla 2kHz to 0,0005s
    Dla preskalera przez 1 czyli dla zegara bezpośrednio da to zaledwie
    4000 zliczeń.co daje rozdzielczość ok. 0,5Hz
    Jak dasz kwarc 16Mhz to będziesz miał 2 razy więcej zliczeń.
    Osiągniesz wtedy 0,25Hz
    Ale oczywiście o ile sygnał jest stabilny.

    Druga metoda, to w przerwaniu zliczasz określoną liczbę impulsów,
    na przykład 16. Dopiero po zliczeniu odczytujesz licznik i go zerujesz
    do następnego pomiaru. Wtedy dla zegara 8MHz dostaniesz 64000zliczeń.
    Wtedy rozdzielczość będziesz miał większą, ale kosztem czasu pomiaru.
    Ale pomiar będzie trwał "tylko" 0,008sek. Może to wystarczy

    Zbyszek

    (pisałem to wcześniej ale się nie wysłało...)


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: