Witam wszystkich
Mam nastepujacy problem:
Chche zaprogramowac na MIkroprocesorze AVR Generaor sygnalu prostokatnego 40kHz i nie bardzo wiem jak taka czestotliwosc uzyskac...
Czy ma ktos moze pomysl...moze robil juz ktos cos podobnego?
Za wszelkie informacje bede bardzo wdzieczny
Dzieki
Generator 40KHz na AVR
-
K_o_n_r_a_d
- Użytkownik
- Posty: 123
- Rejestracja: 29 lip 2005, 10:21
- Lokalizacja: Lublin
Nic nie piszesz o języku, więc uważam domyślnie, że Bascom a jak nie Bascom to i tak ta informacja powinna być wystarczająca:
i teraz do odpowiedniego rejestru (w tym przypadku chyba Pwm1a (inna nazwa to Compare1a)) trzeba wpisac odpowiednią wartość.
np. dla sygnalu zagarowego 4MHz.
4MHz/40kHz/2=50, czyli pwm1a=50
Pisałem to z głowy więc może być błąd, ale sens jest dobry.
Ewentualnie możesz zrobić to samo, ale "trochę bardziej programowo a mniej sprzętowo", czyli ustawić timera aby generował przerwania z częstotliwością 80kHz (2* większą od potrzebnej) a w przerwaniu zmieniać stan końcówki na przeciwny.
Kod: Zaznacz cały
Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1np. dla sygnalu zagarowego 4MHz.
4MHz/40kHz/2=50, czyli pwm1a=50
Pisałem to z głowy więc może być błąd, ale sens jest dobry.
Ewentualnie możesz zrobić to samo, ale "trochę bardziej programowo a mniej sprzętowo", czyli ustawić timera aby generował przerwania z częstotliwością 80kHz (2* większą od potrzebnej) a w przerwaniu zmieniać stan końcówki na przeciwny.
Dzieki Wielkie
Wlasnie o ta idee mi chodzilo...
Jezeli chodzi o to ze mozna generowac timerem przerwanie co 80kHz i zmieniac stan koncowki to tez myslalem Obliczyc trzeba tylko jaka liczbe nalezy wpisac do licznika zeby wlasnie 80kHz wyszlo...
Ale juz ten pierwszy pomysl jest bardzo dobry
pozdrowienia
Adrian
Wlasnie o ta idee mi chodzilo...
Jezeli chodzi o to ze mozna generowac timerem przerwanie co 80kHz i zmieniac stan koncowki to tez myslalem Obliczyc trzeba tylko jaka liczbe nalezy wpisac do licznika zeby wlasnie 80kHz wyszlo...
Ale juz ten pierwszy pomysl jest bardzo dobry
pozdrowienia
Adrian