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



Teraz jest 5 lut 2026, o 04:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 15 sie 2015, o 15:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

Do rzeczy pytanie:
1. Czy ma znaczenie gdzie wstawiamy rozkaz:
Kod:
sei(); // włączenie globalnego zezwolenia na przerwania

domyślam się że raczej w funkcji main a potem ?A może nie ma znaczenia ?

pytanie 2. W BB na stronie 324 do rejestru OCR wpisana jest ostateczna wartość z jaką wykonują się przerwania:
Kod:
OCR=107;

natomiast jeśli chcę użyć do wyświetlania temperatury na multipleksowanym wyświetlaczu LED to jak wiadomo aby ludzkie oko nie dostrzegło migotania rejestrowi temu muszę przypisać inną wartość bo 38

No dobrze i taką wartość przypisałem ale teraz jest takie pytanie czy te operacje odczytu z czujnika które wykonywane mają być co 3 sekundy nadal wykonywane są z dokładnośćią jednej sekundy ? A może zmiana częstotliwości przerwań zmieniła ten czas ,czy on się nam nie "rozbiega " ?

Od czego właściwie zależy ten czas tego timera programowego ?
Powiem szczerze że sobie pomyślałem że w książce na str325 jest podane że jeśli częstotliwość wynosi 100Hz i tam aby obliczyć 1 sekundę należało obliczyć 99 przerwań ,a więc idąc tym tropem to jeśli ja wybrałem OCR=38; czyli tym samym 200Hz to w linijce
z instrukcją warunkową w obsługę przerwania str326 powinienem wpisać
Kod:
if(++cnt>199)

Czy dobrze myślę?. Dziękuje za odpowiedź

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2015, o 20:33 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

1. Ma znaczenie- zazwyczaj robi się to przed pętlą while, czasami robi się to w pętli, ale trzeba mieć duże doświdczenie bo możesz mieć problemy ze stosem przy niepoprawnym zastosowaniu.
2. W książce o ile mnie pamięć nie myli to jest to dokładnie wytłumaczone, ale jeżeli tego samego timera używasz do odświeżania wyświetlacza i do timera to częstotliwości ci się rozjadą i to mocno.

Mkavrcalculator ma kalkulator do timerów, poza tym wzory masz w dokumentacji każdej atmegi.
Tutaj masz przykład http://www.atmel.com/Images/doc2593.pdf strona 92 dla trybu CTC. Dla całej rodziny tzn "atmega" wzory są identyczne, ale każdy tryb timera w sensie np. CTC, Normal,Fast PWM, PWM z korekcją fazy ma inny wzór



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2015, o 21:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

ps19 napisał(a):
ale jeżeli tego samego timera używasz do odświeżania wyświetlacza i do timera to częstotliwości ci się rozjadą i to mocno.


Czy chcesz przez to powiedzieć że mogę zrobić kilka takich funkcji obsługi przerwań i każda może się wykonywać z inną częstotliwością ? :o

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2015, o 11:15 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Tak właśnie działają timery programowe.
Jedna funkcja może się wykonywać z częstotliwością przerwania.
Inna częstotliwość przerwania / 10.
Jeszcze inna */120. Jak tylko zechce twórca programu.
I w sposób nadzwyczaj zrozumiały wyjaśnia to Mirek w BB.
Nie wiem co cię tak dziwi, skoro masz książkę...



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 3 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