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



Teraz jest 13 kwi 2026, o 09:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 25 mar 2014, o 11:28 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

Witam.
Jestem nowy na forum, dopiero zaczynam się uczyć.
Chcę wykonać licznik prędkości czyli liczyć czas od zbocza opadającego do następnego zbocza opadającego (z tego co pamiętam jak hallotron będzie koło magnesu to daje zbocze opadające). Problem mam z tym że nie wiem jak za timery się zabrać. Jak dobrze rozumiem to muszę wykorzystać rejestr icp? Tylko nie wiem jak.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 11:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 sty 2012
Posty: 131
Lokalizacja: Kraków
Pomógł: 2

spróbuj na początek pomigać diodą przy użyciu timera



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 12:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

Na jakim AVR chcesz to zrobić ?

dla przykładu timer nr2 na Atmega8A

starałem Ci się opisać wszystko w komentarzach


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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 12:52 
Offline
Moderator
Avatar użytkownika

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

pawel123 napisał(a):
Problem mam z tym że nie wiem jak za timery się zabrać.


A czytałeś może rozdział o miltipleksowaniu wyświetlaczy 7-segm LED w Bluebooku ? czy go pominąłeś sobie ?

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

_________________
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: 25 mar 2014, o 14:38 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

Kolego Będę bardzo dziękuję za kod. Już się biorę za analizę. Mam procesor atmega32. Kolego mirek36 nie wiedziałem że jest to tam opisane, już się biorę za czytanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 16:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

Jeżeli masz Atmega32 to na stronie 200 w BLUE-BOOK masz dokładne ustawienie Timera0



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 17:44 
Offline
Użytkownik

Dołączył(a): 04 lis 2012
Posty: 108
Pomógł: 0

Z tego co przeczytałem to muszę timer skonfigurować tak aby działał na zbocze opadające:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz pozostaje pytanie jak zliczać czas między zboczami opadającymi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

Zadałem sobie trudu i napisałem dla ciebie program do migania diodą dioda podłączona do pinu PD0 anodą

Z tego kodu już łatwo przekształcisz sobie na co tam chcesz masz tu idee timera








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



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

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

Bedi napisał(a):
Z tego kodu już łatwo przekształcisz sobie na co tam chcesz masz tu pokazaną idee timera


I tu się kolega grubo myli. Przerwanie musi być wywoływane zewnętrznie. Inicjalizacja timera, w tym wypadku (czyli do wywoływania przerwania z zewnątrz) kolegi Bedi jest błędna. Jako wskazówkę dodam, że procedura obsługi przerwania wygląda tak (aby kolega miał trop czego szukać)

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:18 
Offline
Użytkownik

Dołączył(a): 04 lis 2012
Posty: 108
Pomógł: 0

Mój kod co wstawiłem jest błędny? Nie wiem czy dobrze to zrozumiałem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

kaka0204 napisał(a):
kolegi Bedi jest błędna


Ale Ty wzorowałeś się na kodzie kolegi Bedi a więc Twój także jest błędny. Poczytaj o przerwaniach zewnętrznych.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:25 
Offline
Użytkownik

Dołączył(a): 04 lis 2012
Posty: 108
Pomógł: 0

Wzorowałem się na kodzie z książki i ustawiłem External clock source on T0 pin. Clock on falling edge.
Piszę z kolegi konta, był u mnie i się nie wylogował.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 lut 2014
Posty: 42
Pomógł: 1

U mnie jest bledną procedura przerwania bo to program pod miganie diodą ma on być jedynie wskazówka dla autora tego tematu bo kolega niestety nie miał do czynienia z timerami poza tym kolega napisał ten kod sam a nie na podstawie mojego ja przekazałem mu jedynie włączenie timera. Na podstawie mojego ostatniego kodu szybciej zrozumie działanie timera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:31 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

Może koledzy powiedzą co jest źle w moim kodzie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 18:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

Bedi napisał(a):
ma on być jedynie wskazówka dla autora tego tematu

Niestety, ale jest błędną wskazówką. Autor tematu, chce podłączyć hallotron do procka, który to będzie zliczał impulsy. Kolegi kod tych impulsów nie będzie zliczał, tylko będzie sobie tykał wg własnego rytmu, gdyż teraz napędza go prescaler, więc chyba sam kolega przyzna, że to żadna wskazówka. Kierując się teraz w stronę autora tematu podpowiem, aby kolega otworzył sobie notkę swojego procesora i wszedł w rozdział interrupts.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 19:41 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 20:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

Najpierw to musisz powiedzieć jaki masz procesor.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 20:19 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

atmega32



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2014, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sty 2014
Posty: 29
Lokalizacja: Lubartów
Pomógł: 0

zajrzyj sobie do mnie do tematu może coś ci się troszkę rozjaśni :)

http://forum.atnel.pl/topic5404.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2014, o 00:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 sty 2014
Posty: 178
Pomógł: 24

pawel123 napisał(a):
Jak dobrze rozumiem to muszę wykorzystać rejestr icp? Tylko nie wiem jak.

bluebook : odbiór RC5 - fajnie opisane jest właśnie przechwytywanie (icp).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2014, o 11:16 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

Wieczorem poczytam, wykorzystując rejestr icp będę mógł obliczyć czas między impulsami?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2014, o 12:09 
Offline
Moderator
Avatar użytkownika

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

pawel123 napisał(a):
wykorzystując rejestr icp będę mógł obliczyć czas między impulsami?


A myślisz że jak odbywa się zliczanie czasu między impulsami w RC ? ;) ... dlatego kolega dobrze ci radzi poczytaj książkę

a ja jeszcze raz polecam - weź ją najpierw przeczytaj RAZ, JEDEN raz w całości ..... bo później będziesz wiedział gdzie czego szukać. Jak widzisz to co przekazuję w jakimś rozdziale z ćwiczeń praktycznych nie jest przydatne TYLKO i wyłącznie do tematu który opisuję bo to TYLKO przykład. A zastosowane techniki programowania w tych rozdziałach łatwo wykorzystać do wielu różnych celów.

_________________
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: 27 mar 2014, o 19:39 
Offline
Nowy

Dołączył(a): 25 mar 2014
Posty: 7
Pomógł: 0

Witam.
Nie rozumiem linijki z ir_decode.c z bluebook'a:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Odejmowane od ICR1 jest LastCapture po czym LastCapture = ICR1.
Możecie koledzy mi to wyjaśnić?
Chcę napisać licznik czasu między zboczami opadającymi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2014, o 20:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

W LastCapture przechowywana jest ostatnia wartość
licznika ICR1 , licznik ten zlicza cały czas w kółko.
Po obliczeniu PulseWidth do zmiennej LastCapture
jest zapisywana nowa wartość ICR1 aby w następnym
przechwycie można było znowu obliczyć szerokość
impulsu odejmując od poprzedniej wartości ICR1 zapamiętanej w LastCapture
nową wartość do której zdążył już doliczyć ICR1

Nie wiem czy zrozumiale to opisałem (mam taką nadzieję) :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 18 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