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



Teraz jest 5 lut 2026, o 08:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 17 paź 2015, o 14:56 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 23 lis 2012
Posty: 20
Lokalizacja: Wrocław
Pomógł: 0

Witam,

Jest to mój pierwszy post na tym forum, więc proszę o wyrozumiałość i ewentualne przeniesienie postu do innego działu.

Nie wiem czy prawidłowo wyliczyłem wartość... Chcę, aby dioda LED migała co 2s, przy częstotliwości 16 MHz. Znalazłem na stronie http://maxembedded.com/2011/06/avr-timers-timer1/ wzór:

Timer Count = Required Delay / Clock Time Period - 1

Częstotliwość = 16 MHz, 16-bitowy timer (MAX = 65535). Maksymalny delay (65535), a zatem mamy 65535/16000000Hz = 4.09ms
Po użyciu preskalera = 8, mamy dalej 65535/2000000Hz = 0,032767 = 32,767ms
Z faktu, iż interesuje mnie czas 2s, mamy dalej 2/0,032767 = 61,037 = 61

Poniżej kod (ze strony wspomnianej wyżej):

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Moje pytanie tyczy się tego, czy dobrze zrozumiałem autora http://maxembedded.com/2011/06/avr-timers-timer1/ w kwestii obliczenia wymaganych wartości ?

Z góry dziękuje za odpowiedzi i przepraszam, ale to 1 post na tym forum :)

Zatem polubownie proszę zmienić listing zgodnie z zasadami i zaleceniami na forum topic7402.html
---- SunRiver


Już zmieniłem

EDITED:

Nawiązując do przykładu z Blue Booka, strona 43.

Timer1, 1 sekunda, F_CPU=8MHz

Według wzoru:
Timer Count = Required Delay / Clock Time Period - 1
i
TimePeriod = 1 / Frequency

F = 8000000/256(prescaler) = 31250 Hz
T= 1/31250Hz=0,000032s=0,032ms

TimerCount = 1000ms/0,032ms -1 = 31250 - 1 = 31249

Wpisujemy do TCNT1 wartość 31249, czy tak jak pisze Mirek 65536-31249=34287



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2015, o 14:43 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 23 lis 2012
Posty: 20
Lokalizacja: Wrocław
Pomógł: 0

1Yokoon napisał(a):
Witam.
Chcesz otrzymać 2sek = 2Hz
2 = 16000000 / 1024 = 15625 / 7812.5
TCNT1 = 65536 - 7812.5 = ~57723 nie odejmujesz 1 to nie jest tryb CTC

Lub przy prescalerze 256
TCNT = 49911


Ok, dzięki za odpowiedź. Czyli w tym przykładzie (1 post) wartość 61 jest źle wyliczona i 57723 jest ok? Jak dobrze rozumiem 15625 / 2 => 7812.5 ponieważ chcę mieć 2 Hz ?

Aha, ok... wartość 49911 jest dla przykładu z książki Mirka (F_CPU=8MHz i 1s, prescaler=256 i Timer1).

Dzięki za wyjaśnienie. Odejmujemy 1 tylko dla trybu CTC, o ile dobrze zrozumiałem ?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2015, o 19:00 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Mignięcie co 2 sekundy, to 0,5Hz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 paź 2015, o 19:06 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 23 lis 2012
Posty: 20
Lokalizacja: Wrocław
Pomógł: 0

1Yokoon napisał(a):
HomoChemicus napisał(a):
Mignięcie co 2 sekundy, to 0,5Hz.


Tak masz rację z rozpędu tak porównałem 1Hz = 1sek.
Liczyłem dla 2Hz, myślę, że autor postu przeliczy sobie na 2sek.

**2sek 0.5Hz**
F_CPU=16000000
Presc = 1024
TCNT1 = 34286

Myślę, że teraz będzie dobrze.


Dzięki Ci!
Jest dobrze. Ja jak to ja lubię wiedzieć skąd co się wzięło (m.in. jakby ktoś tutaj kiedyś zajrzał).

Dane:
T=2s F_CPU=16MHz=16000000Hz Prescaler=1024
F=1/T=1/2s=0,5Hz

16000000/1024=15625
15625/0,5Hz=31250
65536-31250=34286

Ok, a kiedy możemy użyć poniższego wzoru:
Timer Count = Required Delay / Clock Time Period - 1



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: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO