Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 12 gru 2024, o 18:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 19 gru 2014, o 16:12 
Offline
Nowy

Dołączył(a): 12 lis 2014
Posty: 10
Pomógł: 0

Witam
Chce wygenerować programowo Pwm 50Hz wypełnienie 50%. Częstotliwość procka 16MHz (atmega644p). Użyłem prescaler 1 oraz timera1 (zlicza do 65535). W przerwaniu zliczam do 200 przez pierwsze 100 ustawiam stan wysoki a przez kolejne niski. Według moich obliczeń na początku przerwania powinienem napisać Timer1=63935 lecz wtedy uzyskam 47,7245Hz gdy napiszę Timer1 = 64011 mam 50,0028Hz. Jaka może być przyczyna tej różnicy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2014, o 17:23 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Od kiedy to się używa prescalera 1 ?

Użyj timera1, prescalera 64, wpisz do timera wartość 60536 i przerwanie wywoływane będzie co 0,02sek. co powinno zaowocować częstotliwością 50Hz. Chyba że się pomyliłem i źle wyliczyłem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2014, o 20:47 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Typowy kawałek na programowy PWM. Bardzo ładnie Niveasoft alias EDC ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO