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



Teraz jest 6 kwi 2026, o 01:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 28 lip 2014, o 07:51 
Offline
Nowy

Dołączył(a): 20 cze 2014
Posty: 6
Pomógł: 0

Witam

Chciałbym się dowiedzieć zanim się wezmę do roboty, bo sam nie potrafię tego wywnioskować. Potrzebuję przede wszystkim mieć wyprowadzony na zewnątrz zegar taktujący 10KHz, do tego celu użyje licznika T1, który będzie generował sygnał na złączu ocie1.
Do tego chciałbym tym samym mikrokontrolerem odczytywać długość trwania stanu wysokiego pewnego przebiegu (sygnał z komparatora). Rozumiem, że tutaj musiałbym podać ten sygnał na wyprowadzenie INT0 lub INT1 i momencie wykrycia zbocza wysokiego uruchamiać któryś timer (t1 mam zajęty). Po zmierzeniu długości impulsu musiałbym przesłać wynik po UART do komputera (wysyłka nie musi być natychmiast - mogę najpierw te dane zapisywać do pamięci i wysłać paczką po iluśtam pomiarach).
Czy jest to możliwe do realizacji na AVR? Nawet taką metodą powiedzmy nie najbardziej optymalną.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2014, o 09:02 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 194
Lokalizacja: Jantar
Pomógł: 3

Zapytam się z ciekawości. Czy piszesz program do obsługi ultradźwiękowego czujniki odległości???

_________________
Bluebook, Greenbook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2014, o 09:04 
Offline
Użytkownik
Avatar użytkownika

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

Timer1 i jego funkcja ICP w związku komparatorem analogowym.
ICP służy do pomiaru długości impulsów. Można tego używać jako wejścia ICP, ale można też ustawić, że źródłem jest porównanie komparatora.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2014, o 18:27 
Offline
Nowy

Dołączył(a): 20 cze 2014
Posty: 6
Pomógł: 0

Alan Bejnarowicz napisał(a):
Zapytam się z ciekawości. Czy piszesz program do obsługi ultradźwiękowego czujniki odległości???


Nie, ale blisko. Piszę coś co ma obsłużyć linijkę CCD. Mam rozpracowane sterowanie tej linijki, teraz pozostaje mi akwizycja danych. Okazuje, się, że sygnał wyjściowy jest dość dziwny, bo natężenie światła przetwarza na impuls czasowy taki jak ten:
ObrazekObrazek
Jeden z obrazków prezentuje pojedynczy pixel który jest całkowicie nieoświetlony, a drugi pokazuje pixel który jest oświetlony świałem dziennym. Dlatego przepuszczam to przez komparator o chcę to odczytywać. Myślę, że zaspokoiłem twoją ciekawość.


@sq8dsr
Nie jestem do końca pewien, czy Cię dobrze zrozumiałem. Ja początkowo chciałem podawać sygnał na złącze INT0 lub INT1. Pojawienie się zbocza narastającego na tym wyprowadzeniu powodowałoby generację przerwania. W tym przerwaniu uruchomiłbym licznik i zmierzył jak dlugo trwa te przerwanie. Martwiłem się tylko, czy starczy mi na wszystko czasu.
Twój pomysł wydaje się lepszy. Rozumiem, że wystarczy odpowiednio skonfigurować timer. Podać sygnał na ICP1 (PB0) i po pojawieniu się zbocza on policzy ile ono trwało i wynik zapisz do rejestru. Pytanie jak szybko może on być wyzwalany? I jak to wygląda od strony dostępu do 16 bitowego rejestru. Nie potrzebuję dużej dokładności dlatego wolałbym czytać tylko 8 bitów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2014, o 22:08 
Offline
Użytkownik
Avatar użytkownika

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

ICP działa w taki sposób, że jeśli Timer1 (tylko tam występuje taka funkcjonalność) jest ustawionu na jego obsługę to licznik timera liczy sobie zgodnie z preskarelem. W chwili gdy pojawia się zbocze na ICP wartość rejestru TCNT1 jest kopiowana do rejestru IRC1. Oczywiście można wyzwolić przerwanie. Jeśli w tym przerwaniu zmienimy zbocze wyzwalające na przeciwne to następne przerwanie nastąpi gdy impuls się zakończy. Dzięki temu złapiemy jego długość w jednostkach którymi posługuje się Timer1.
Można zamiast ICP podpiąć do tego komparator. Jest taka opcja w rejstrze, nie pamiętam z głowy a nie mam noty przed sobą. Ale tryb capture Timera1 to jest chyba dosłownie 2 strony w nocie.
Co do zmiennych 16 bitowych. To raczej nie stanowią one przoblemu. Owszem, w programie głównym dobrze jest potraktować je jako operacje atomowe, jeśli zachodzi możliwość wyzwolenia przerwania w trakcie operacji na takich zmiennych. Ale dotyczy to ogólnie wszystkich takich operacji.
Zresztą możesz preskaler ustawić tak by wartosci TCNT1 i ICR1 miesciły się zawsze w młodszym bajcie, choć wtedy będziesz miał rozdzielczośc tylko 8 bitową. Ale nie wiem czy jest sens.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2014, o 06:38 
Offline
Nowy

Dołączył(a): 20 cze 2014
Posty: 6
Pomógł: 0

Nie chciałbym być upierdliwy, ale chyba czegoś nie potrafię zauważyć w nocie katalogowej. O Input Capture Unit oczywiście jest poświęcony rozdział, ale to chyba za mało.
Rozumiem po co tam jest ICPn i jak działa. Jednak jest tam dopisek, że alternatywnie można podłączyć komparator analogowy, ale nie wyjaśniają co to daje i jak to wykorzystać. Chyba, ze ja coś opacznie zrozumiałem i tu chodzi o zewnętrzny komparator napięcia jako fizyczny układ, to wtedy owszem - od samego początku zakładałem, że sygnał wejściowy będzie pochodził z analogowego komparatora napięcia.
Bo jeżeli miałoby tu chodzić o jakiś wewnętrzny komparator, który znajduje się wewnątrz procesorka, to wtedy nie bardzo wiem o co chodzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2014, o 07:57 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

antos napisał(a):
Jednak jest tam dopisek, że alternatywnie można podłączyć komparator analogowy, ale nie wyjaśniają


wyjaśnią wyjaśnią, wystarczy zajrzeć do opisu bitów rejestrów komparatora analogowego, masz tam napisane:

Cytuj:
Analog Comparator Control
and Status Register – ACSR


Cytuj:
• Bit 2 – ACIC: Analog Comparator Input Capture Enable
When written logic one, this bit enables the Input Capture function in Timer/Counter1 to
be triggered by the Analog Comparator. The comparator output is in this case directly
connected to the Input Capture front-end logic, making the comparator utilize the noise
canceler and edge select features of the Timer/Counter1 Input Capture interrupt. When
written logic zero, no connection between the Analog Comparator and the Input Capture
function exists. To make the comparator trigger the Timer/Counter1 Input Capture interrupt,
the TICIE1 bit in the Timer Interrupt Mask Register (TIMSK) must be set.


------------------------ [ Dodano po: 2 minutach ]

Więc jak widzisz chodzi o wewnętrzny komparator w procku, który w pełni można przełączyć / podłączyć jako źródło przechwytywania ...

Natomiast nie dziw się, że w nocie nikt ci nie podaje do czego to można wykorzystać czy tam jak można to wykorzystać, to jest nota PDF a nie książka z przepisami na różne zastosowania różnych mechanizmów procka. Bo jak to teraz zobaczysz to też zapewne zrozumiesz, że pomysłów na zastosowanie może być miliard - ich ilość zależy tylko od wyobraźni.


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2014, o 10:11 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 194
Lokalizacja: Jantar
Pomógł: 3

Dziękuję. Moja ciekawość została zaspokojona:)

_________________
Bluebook, Greenbook



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

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