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



Teraz jest 22 gru 2024, o 10:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
 Tytuł: RC5 Bluebook
PostNapisane: 1 gru 2016, o 16:32 
Offline
Nowy

Dołączył(a): 18 sie 2015
Posty: 4
Pomógł: 0

Witam.

Przerabiam właśnie rozdział dotyczący podczerwieni w Bluebooku. Postanowiłem dość "dogłębnie" przeanalizować kody dla lepszego zrozumienia co po kolei się w nim dzieje. Nie jest źle :) bo w zasadzie większość zdołałem ogarnąć. Intryguje mnie tylko jedna rzecz.
Otóż w obsłudze przerwania ICP obliczana jest szerokość impulsu:
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zmienne PulseWidth i LastCapture są typu int16 bez znaku.

Timer1 w trybie ICP, z tego co zrozumiałem z noty, pracuje na zasadzie zliczania w górę od zera do 65536. W chwili wystąpienia zbocza na wejściu ICP do rejestru ICR1 wpisywana jest aktualna wartość z TCNT1.
Moje pytanie dotyczy sytuacji kiedy liczymy szerokość impulsu i np. zmienna Last Capture z poprzedniego przerwania wyniosła 65000, Timer1 zliczyl 889us (z założeniem zegara 8 MHz) i nastąpiło kolejne wykrycie zbocza. W związku z tym do ICR1 zostanie wpisana wartość 353 (Timer1 doliczył z 65000 do końca, wyzerował się i liczył dalej). Jaki będzie zatem wynik wyrażenia ICR1 - LastCapture (353 -65000) ? Nie będzie to liczba ujemna bo typ zmiennej jest unsigned. Jak wpływa to na przebieg kodu ? Czy w tej sytuacji ramka zostanie odrzucona i procedura się powtórzy ale z kolejnymi już prawidłowymi wartościami PulseWidth i LastCapture ?

Dziękuję i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2016, o 16:45 
Offline
Moderator
Avatar użytkownika

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

A czy widzisz gdzieś w kodzie jakieś takieś odrzucanie ramki ??? ;)

marian_pl napisał(a):
Jaki będzie zatem wynik wyrażenia ICR1 - LastCapture (353 -65000)

No a jak myślisz ? ;)

------------------------ [ Dodano po: 5 minutach ]

Wystarczy wziąć kalkulator windows w trybie programisty i zrobić to odejmowanie ;)

353 - 65000
ObrazekObrazek

to się równa - binarnie - zobacz w czerwonej ramce ;)
Obrazek

czyli dziesiętnie ta wartość binarna to !!! taa daaa =
Obrazek

teraz jaśniej ? ;)

_________________
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: 1 gru 2016, o 17:12 
Offline
Nowy

Dołączył(a): 18 sie 2015
Posty: 4
Pomógł: 0

Jasne jak słońce :) niepotrzebnie namieszałem sobie w głowie pisząc na szybko programiki z funkcjami printf() do wyświetlania liczb, pewnie pomyliłem tam zakresy liczb. Dziękuję za odpowiedź.



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

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