eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie koduRe: AVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu
  • Data: 2011-02-09 18:40:14
    Temat: Re: AVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu
    Od: Grzegorz Kurczyk <g...@c...slupsk.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 09.02.2011 13:54, Robbo pisze:
    > Witam,
    >
    > Jakiś czas temu pytałem o sprawy związane z pomiarem częstotliwości
    > sinusoidy o częstotliwości od 2 do 150Hz oraz zmiennej amplitudzie (od
    > kilku V do 400V). Mam już układ elektroniczny przekształcający sinusoidę
    > na prostokąt (brana jest pod uwagę tylko dodatnia połówka, a ujemna jest
    > usuwana). Jest tu kilka rezystorów, mostek, tranzystor, dioda oraz
    > transformatorek. (Może działanie tego układu da się jeszcze ulepszyć,
    > ale to w sumie nie jest teraz tematem). Uzyskany z dodatniej połówki
    > sinusoidy prostokąt jest podawany na nóżkę PE7(INT7) mikrokontrolera
    > ATmega128 (kwarc 16MHz). Dokładność pomiaru, którą chciałbym osiągnąć to
    > 0,2Hz przy częstotliwości 50Hz. Chciałem Was prosić o sprawdzenie mojego
    > kodu, którego zadaniem jest nieustanne mierzenie czasu trwania dodatniej
    > połówki, a następnie wypisywanie tej wartości na wyświetlacz. Kod, który
    > napisałem wygląda na działający, ale może ma jakiś ukryty błąd.
    >

    Witam
    Na wstępie to się zapytam, na czym Koledze tak naprawdę zależy ? Na
    pomiarze czasu (okresu) czy częstotliwości ? Bo pisze Kolega o
    "dokładności 0,2Hz" i o "wyświetlaniu czasu trwania dodatniej połówki".
    Ponieważ zakres częstotliwości jest stosunkowo niewielki, można to
    zrobić na dwa sposoby i kilka wariacji ;-).
    1. Pomiar ilości impulsów w stałym przedziale czasu. Przy wymaganej
    rozdzielczości 0,2Hz pomiar musiałby trwać co najmniej 5 sekund. Metod
    realizacji jest wiele. Przy tak małej częstotliwości zbocze sygnału
    mierzonego można sobie wykrywać programowo w pętli (pod warunkiem, że w
    systemie nie istnieją przerwania, których obsługa zajmuje ponad 6ms).
    Jako bramkę czasu najprościej wykorzystać któryś z timerów. Bardziej
    elegancko liczyć zbocza w obsłudze zewnętrznego przerwania. Można
    zliczać impulsy sprzętowo za pomocą licznika 16-bitowego, a 8-bitowym
    realizować bramkę czasu. Można również całkowicie sprzętowo z
    wykorzystaniem rejestru ICR licznika 16-bitowego i licznika 8-bitowego
    generującego na wyjściu OCx impulsy o czasie bramkowania.
    2. Pomiar czasu między impulsami (okresu). Tu aż się prosi wykorzystać
    Input Capture Register.

    Pozdrawiam
    Grzegorz

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: