-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
sfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Łukasz Góralczyk <l...@g...com>
Newsgroups: pl.misc.elektronika
Subject: Re: Generator sinusoidy od 0 do 400Hz na uC
Date: Mon, 31 Aug 2009 22:43:02 +0000 (UTC)
Organization: TP - http://www.tp.pl/
Lines: 45
Message-ID: <h7hjlm$bv4$1@nemesis.news.neostrada.pl>
References: <h7han2$jcr$1@atlantis.news.neostrada.pl>
NNTP-Posting-Host: ebh185.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: nemesis.news.neostrada.pl 1251758582 12260 83.22.197.185 (31 Aug 2009
22:43:02 GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Mon, 31 Aug 2009 22:43:02 +0000 (UTC)
User-Agent: Pan/0.132 (Waxed in Black)
Xref: news-archive.icm.edu.pl pl.misc.elektronika:570108
[ ukryj nagłówki ]On Mon, 31 Aug 2009 22:08:03 +0200, Robbo wrote:
[ciach]
> do 400Hz. Rozwa?am tu podej?cie polegaj?ce na stablicowaniu próbek
> po?ówki sinusoidy i "wysy?aniu" ich na zewnetrzny przetwornik cyfrowo
Wystarczy zrobić tablicę dla 1/4 i potem odpowiednio czytać wartości (w
przód/w tył), ale jeśli pamięci w zapasie to można wrzucić 1/2.
> -analogowy. Zrobi?bym funkcje, która by?aby przez "timer" wywo?ywana z
> odpowiedni? czestotliwo?ci? (np. 400*256Hz dla czestotliwo?ci 400Hz i
> przetwornika 8-bitowego).
Chyba bardziej poprawnie "400 Hz * 256" dla 256 próbek :) .
> Problem jednak z p?ynn? regulacj? czestotliwo?ci od 0 do 400Hz. Tzn.
> wystarczy?aby mi rozdzielczo?ae 1Hz. Niemniej i tak operuj?c prescalerem
> i OCR2 nie da sie uzyskaae wszystkich mo?liwych czestotliwo?ci. By?bym
> wdzieczny za rade, jak rozwi?zaae ten problem.
Hmm... ciężko. Przyszło mi do głowy żeby generować sinusoidę ze zmienną
liczbą próbek na okres. Tę liczbę próbek tak dobierać aby pojedynczy
kwant czasu był wielokrotnością możliwego kwantu uzyskiwanego z
przerwania od timera. Np. dla 400 Hz i 100 próbek (na okres) musisz
wysyłać próbkę co 25 us. Ustalasz sobie tick zegara na np. 2,5 us (4 MHz,
8 MHz i prescaler na 2, itd.) i co dziesiąty tik timera wysyłasz próbkę
(korzystając z trybu CTC). Dla 399 Hz dobieramy ilość próbek tak alby
przerwanie generowało się co wielokrotność 2,5 us, np. dla 125 wychodzi
że trzeba wystawiać próbkę co 20,05 us czyli co ok. 8 taktów zegara
timera. Dla 398 Hz i 84 próbek generujesz przerwanie co 29,91 us ~= 30 us
=> 12 taktów zegara i tak dalej.
Lepiej zastosować szybkie taktowanie procesora, powinno być więcej
rezerwy, można zejść niżej z tym kwantem (dla 10 MHz masz cykl 0,1 us,
czyli 20 us to 200 instrukcji /realnie ze 140/). Do policzenia optymalnej
liczby próbek dla danego kwantu i częstotliwości lepiej użyć stacjonarny
komputer i zrobić z tego tabelkę - obliczenia raczej proste ale sinus by
się musiał wstrzymać na trochę. Przy tej metodzie zawsze będziesz miał
jakąś odchyłkę od całkowitej liczby Hz (błąd łatwo policzyć). Przy
wyższych częstotliwościach CPU będzie i czas na inne rzeczy (np. miganie
diodą).
Inne rozwiązanie to generator sterowany napięciem + precyzyjny
przetwornik D/A - ładny sinus, łatwe sterowanie.
--
Łukasz.
Następne wpisy z tego wątku
- 01.09.09 08:59 Sylwester Łazar
- 01.09.09 18:02 wt
- 01.09.09 19:00 Papa Smerf
- 01.09.09 19:48 J.F.
- 01.09.09 20:23 Papa Smerf
- 01.09.09 20:58 RoMan Mandziejewicz
- 01.09.09 22:22 Sebastian Biały
- 02.09.09 12:39 marko1a
- 02.09.09 15:33 J.F.
- 02.09.09 16:25 Papa Smerf
- 03.09.09 11:51 marko1a
- 03.09.09 20:06 Dykus
- 04.09.09 12:34 marko1a
- 03.09.09 21:32 Papa Smerf
Najnowsze wątki z tej grupy
- "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- antena gsm - kabel - antena gsm
- PID - jeszcze raz
- Zlacze w mikrofonie z lat 80-tych
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Ceny mieszkań stabilne a zdolność kredytowa rośnie. O ile nie masz dzieci