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



Teraz jest 18 kwi 2024, o 05:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 24 lip 2014, o 17:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2014
Posty: 85
Pomógł: 4

Witam!
Ostatnio przeczytałem rozdział dotyczący podczerwieni i kodów RC w książce Mikrokontrolery AVR Język C. Jest tam podany przykład dekodowania sygnału RC5 na przerwaniu ICP. Nie mogę jednak ogarnąć :( , jak działa to przerwanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 18:12 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

Na stronie 38 w BB masz opisane przerwania. w skrócie jest to funkcja która przerywa na chwile program i wykonuje się gdy na pinie odpowiedzialnym za przerwanie nastąpi: zmiana stanu lub, określony stan. Powiedzmy ze do pinu PC2 odpowiedzialny za przerwanie podłączysz switch to jego naciśniecie spowoduje odpalanie w programie przerwania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 18:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2014
Posty: 85
Pomógł: 4

To to ja wiem :D . A czym się różni takie przerwanie np. od INT?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 18:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

ICP służy do rejestracji sygnałów przychodzących z zewnątrz oraz odmierzania ich czasu trwania bądź momentu w którym wystąpiły.
Najogólniej mówiąc działa to tak, że Timer1 (16 bitowy) liczy sobie z taką prędkością jaką zadaje mu preskaler. W chwili gdy na wejściu ICP pojawia się zbocze sygnału (narastające lub opadające - ustawia się to w rejestrze) wartość licznika TCNT1 jest przepisywana do rejestru ICR1. W tym samym momencie może być wywołane przerwanie (jeśli jest uaktywnione). Dzięki temu wiemy po jakim czasie od uruchomienia timera1 wystąpiło zbocze. Wartość, która jest w rejestrze ICR1 jest tak na prawdę tym właśnie czasem.

Oczywiście są różne inne możliwości. Jeśli chcemy badać jak długo na wejściu ICP obecny był przykładowo stan wysoki, to wtedy ustawiany timer na zbocze narastające i uruchamiamy timer. Gdy pojawi się zbocze narastające wywołujemy przerwanie w którym kasujemy licznik TCNT. Następnie, dalej w przerwaniu zmieniamy zbocze na opadające (aby złapać koniec impulsu). Przy następnym przerwaniu zarejestrujemy moment zbocza opadającego. Zawartość rejestru ICR1 będzie zawierać czas trwania impulsu.

To trochę jest, na pierwszy rzut oka skomplikowane. Ale tak na prawdę wszystko sprowadza się do zrozumienia kilku rzeczy:
Czym jest zbocze. Czym jest praca timera w trybie NORMAL. Funkcji rejestrów TCNT i ICR1 oraz stosowania odpowiednio dobranych preskalerów.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 18:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2014
Posty: 85
Pomógł: 4

Dzięki bardzo! O to mi chodziło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 19:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Generalnie dobrze jest przestudiować notę procesora. ICP jest powiązane w pewnym sensie również z komparatorem analogowym, tzn wynik jego porównania może być użyty do wyzwolenia ICP. Można również wyzwolić ICP programowo przez programową zmianę stanu tego wejścia.
Ale podstawa działania jest taka jak opisałem powyżej. A ICP służy do pomiaru czasu miedzy impulsami, lub czasu trwania impulsu.



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

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