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



Teraz jest 29 gru 2024, o 08:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
 Tytuł: Dekoder RC5
PostNapisane: 14 cze 2016, o 11:38 
Offline
Nowy

Dołączył(a): 20 gru 2015
Posty: 19
Pomógł: 0

Również przerabiam teraz kod dotyczący dekodera rc5 str.307 rozdział 5.12 Odbiór kodów RC5 w podczerwieni i prosiłbym o wytłumaczenie kodu pliku "ir_decode.c" nie potrafię go ogarnąć, nie ukrywam sprawia mi problem jego zrozumienie, miałbym prośbę do kogoś kto ma chęć wytłumaczyć linijka po linijce jak zachowuje się kod.

[ Panie kochany na litość boską - masz kod w książce ? to dobrze - ja też go mam, i 99% użytkowników tego forum ma ten kod to po co wklejasz kody bibliotek na forach niezgodnie z prawem autorskim zresztą - o czym mowa w stopce na pierwszej stronie redakcyjnej książki, którą masz w ręku ...

Tym sposobem każdy udostępniłby po jednej bibliotece na forach i po co mi pisać książki ? zastanawiałeś się kiedyś nad tym ? Pomyśl o tym proszę na przyszłość za nim ochoczo opublikujesz na tym albo na innym forum kod źródłowy bibliotek z książki oK? gorąco o to proszę - mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Dekoder RC5
PostNapisane: 14 cze 2016, o 13:28 
Offline
Moderator
Avatar użytkownika

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

a swoją drogą kod jest obszernie objaśniony w książce, i ja rozumiem doskonale że pomimo to można się gdzieś zaciąć bo coś jest nadal niejasne dla ciebie w książce - ale co za problem dopytać np o fragment kodu, który stanowi dla ciebie problem ze zrozumieniem - można wtedy nawet taki fragmencik wkleić na forum aby podeprzeć swoje pytanie .... Pytanie też warto sprecyzować a nie DOWALIĆ cały kod i napisać żeby ci wyjaśnić ? a to znaczy, że w książce NIC ? ani jednego zdania tego obszernego opisu do kodu nie zrozumiałeś ? Czyli co ? przepisać np ja mam tutaj cały ten rozdział ? To nadal pewnie nie zrozumiesz - ... dlatego lepiej chyba SPRECYZOWAĆ swoje pytanie albo pytania do książki hmmm ?

_________________
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  
 Tytuł: Re: Dekoder RC5
PostNapisane: 15 cze 2016, o 11:18 
Offline
Nowy

Dołączył(a): 20 gru 2015
Posty: 19
Pomógł: 0

W procedurze obsługi przerwania używamy następujących zmiennych:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


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


jeżeli licznik rc5cnt równa się =0 oznacza to że znajdujemy się na początku ramki danych w pierwszym bicie startowych na zboczu opadającym, zmienne IrData i IrPulseCount są 0, kolejny impuls sygnału jaki się spodziewamy powinien być narastający w drugim bicie startowym i w tym momencie zaczynamy zliczanie zbocz sygnału licznik rc5cnt zostaje zwiększony o jeden a status ramki przyjmuje wartość 2 czyli tak jakby ramka została odebrana. Następuje koniec procedury obsługi przerwania, dalsze warunki if już nie wchodzimy ponieważ frame_status=FRAME_END ale licznik rc5cnt ma już wartość 1. Teraz powinniśmy spodziewać się sygnału zbocza opadającego w drugim bicie startowym .... i tutaj się pogubiłem, nie wiem czy w tym momencie jak mamy reakcję na zbocze opadające to wchodzimy do procedury obsługi przerwania ISR(TIMER1_CAPT_vect) czy do funkcji void ir_init() ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Dekoder RC5
PostNapisane: 15 cze 2016, o 13:16 
Offline
Moderator
Avatar użytkownika

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

ciscoc napisał(a):
linika kodu której nie rozumie

Zmienna PulseWidth jak sama nazwa wskazuje - mówi nam za każdym razem ile ms trwał stan niski albo wysoki w ramce danych - przechwytujemy to wprost z rejestru ICR1 a przecież zainicjowaliśmy Timer1 w ten sposób, że jedno jego tyknięcie mówi nam dzięki makrom - że trwa to 1 ms ;)

Do późniejszych obliczeń zapamiętujemy jeszcze wartość ICR1 w zmiennej LastCapture (która po restarcie ma wartość = 0) a później zawsze wartość długości przedostatniego impulsu. Opisuję też to w książce. Jak chcesz lepiej zrozumieć to weź kartkę i ołówek i sam sobie rozrysuj najprostszą ramkę RC5 i staraj się po kolei sobie rysować w którym miejscu jesteś po wykonaniu przerwania i który czas bierzemy pod uwagę.

ciscoc napisał(a):
i tutaj się pogubiłem, nie wiem czy w tym momencie jak mamy reakcję na zbocze opadające to wchodzimy do procedury obsługi przerwania ISR(TIMER1_CAPT_vect) czy do funkcji void ir_init() ?

Jak można z przerwania wejść do ir_init()? no coś ty ? toż ir_init() wywołujesz TYLKO RAZ na początku programu w MAIN.C przed pętlą główną i na tym koniec

później działasz już tylko cały czas w przerwaniu

mówię ci - kartka/ołówek i rysowanko - mi to pomogło i wielu czytelnikom też - nawet gdy o to samo tu pytali na forum bo jakbyś dobrze poszukał do IDENTYCZNE pytania już padały na tym forum

_________________
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  
 Tytuł: Re: Dekoder RC5
PostNapisane: 16 cze 2016, o 11:02 
Offline
Nowy

Dołączył(a): 20 gru 2015
Posty: 19
Pomógł: 0

jeszcze prosiłbym o wyjaśnienie warunku
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  
 Tytuł: Re: Dekoder RC5
PostNapisane: 16 cze 2016, o 11:35 
Offline
Moderator
Avatar użytkownika

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

No przecież tu w zależności od tego jakie jest ustawione zbocze albo wsuwamy bit 1 albo 0

------------------------ [ Dodano po: 1 minucie ]

przecież to proste maskowanie: (TCCR1B & (1<<ICES1))

jeśli nie wiesz co to maskowanie to obejrzyj koniecznie:
http://mirekk36.blogspot.com/2014/03/ma ... m-oka.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  
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 4 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