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



Teraz jest 30 sty 2025, o 13:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: Dekodowanie IR
PostNapisane: 27 mar 2014, o 22:52 
Offline
Nowy

Dołączył(a): 13 mar 2014
Posty: 5
Pomógł: 0

Witam!

Zgłębiam aktualnie odmęty podczerwieni :) I mam parę pytań.
Korzystam z bluebooka i widze, ze kazda ramka rc5 jest 14bitowa :
2 start bity, Toggle**, 5 bitow adresu i 6 komendy.
Pilot, jakiego postanowiłem użyć (akurat jego mam względnie 'wolnego') to
http://lirc.sourceforge.net/remotes/thomson/RC111TA1G
ten model.

** Do czego on wlasciwie sluzy? Bo w kodzie z bluebooka nie widze jaka role tam odgrywa.

To, czego nie rozumiem i nie umiem znaleźć odpowiedzi to :
pre_data_bits 4
toggle_bit 5
bits 8
pre_data 0xC czyli 1100
Nie potrafię tego zinterpretować. Jako pre_data bym rozumiał to, co stoi przed adresem i komenda, ale co to w takim razie jest? Tyle bitów startu ? Czy " bits 8" oznacza, ze ramka ma 8 bitów? Dziwne, bo tu juz niektore adresy tyle maja.
Nie wiem jak sie do tego zabrać, a nie umiem znalezc potrzebnych informacji. Gdzieś wyczytałem, że ten pilot nadaje w standardzie RC4. Czy to prawda?

Druga sprawa, bardziej jako ciekawostka dla mnie :
W ramach debugowania zrobiłem sobie pomocniczą diodkę. Jako, że z programowaniem miałem niejednokrotnie do czynienia to brak jakiejś takiej fizycznej możliwości sprawdzenia co się tam w środku dzieje z tymi moimi zmiennymi sprawia, że bywam bezradny. Wymyśliłem sobie, że w ramach breakpointów będę zapalał diodki(jestem bardzo dumny z tego pomysłu! :D ) I tutaj mam zonka. Chcąc sprawdzić (tak przynajmniej śladowo) czy dobrze podłączyłem odbiornik (schemat z bluebooka) zrobiłem zapalanie diodki (zaraz na poczatku przerwania). I tu ciekawe (przynajmniej dla mnie) - jak robie to zwyklym ORem to dioda swieci, ale bardzo slabo. O co chodzi? Dioda podpieta anoda do uC i rezystorem do masy.

Załączam zdjecia plytki.
Z góry dziękuję za poświęcony czas i przepraszam za trywialne pytania :)
Ta czerwona diodka to 'breakpoint', zolta ma sie zaswiecac po wcisnieciu odpowiedniego guzika.
W ogóle to zauwazylem, ze jak przypadkiem zwarlem nozke zoltego leda do rezystora ktory go podciaga pod mase to 'breakpoint' zaswieca sie. (To akurat juz po zmianie kodu, zamiast ORa mam XORa)

Obrazek
Obrazek
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2014, o 00:35 
Offline
Moderator
Avatar użytkownika

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

skoro twój pilot ma pre_data_bits to skąd ci przychodzi do głowy że to pilot nadający w standardzie RC5 ? :(

henio napisał(a):
** Do czego on wlasciwie sluzy? Bo w kodzie z bluebooka nie widze jaka role tam odgrywa


A dlaczego sądzisz że miałoby to wynikać z Bluebooka ? - nie rozumiem ?

henio napisał(a):
Nie potrafię tego zinterpretować. Jako pre_data bym rozumiał to, co stoi przed adresem i komenda, ale co to w takim razie jest? Tyle bitów startu ? Czy " bits 8" oznacza, ze ramka ma 8 bitów? Dziwne, bo tu juz niektore adresy tyle maja.


Takie rzeczy to szeroko opisane są w drugiej książce czyli Greenbooku i jak dekodować różne piloty a także jak intepretować dane z lirc.org

http://atnel.pl/jezyk-c-pasja-programowania.html

henio napisał(a):
Wymyśliłem sobie, że w ramach breakpointów będę zapalał diodki(jestem bardzo dumny z tego pomysłu! ) I tutaj mam zonka. Chcąc sprawdzić (tak przynajmniej śladowo) czy dobrze podłączyłem odbiornik (schemat z bluebooka) zrobiłem zapalanie diodki (zaraz na poczatku przerwania). I tu ciekawe (przynajmniej dla mnie) - jak robie to zwyklym ORem to dioda swieci, ale bardzo slabo. O co chodzi? Dioda podpieta anoda do uC i rezystorem do masy


Ale pomyśl kto cię tam wie co ty kombinujesz w kodzie żeby odpowiedzieć na takie pytanie ? hmmm ;) A druga sprawa widać że kręcisz się na razie jak bączek w miejscu bo cały czas popełniasz błąd zakładając że ten pilot to RC5 ??? na jakiej podstawie pytam ;) .... toż w opisie w linku który podałeś masz jak byk napisane:

flags SPACE_ENC

czyli kodowanie typu SPACE - co nie ma NIC a NIC wspólnego z RC5. Tak jak mówię o rodzajach kodowania możesz się dowiedzieć sporo z Greenbooka


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: 28 mar 2014, o 09:31 
Offline
Nowy

Dołączył(a): 13 mar 2014
Posty: 5
Pomógł: 0

mirekk36 napisał(a):
henio napisał(a):
** Do czego on wlasciwie sluzy? Bo w kodzie z bluebooka nie widze jaka role tam odgrywa


A dlaczego sądzisz że miałoby to wynikać z Bluebooka ? - nie rozumiem ?


Chodzi o to, że bluebook to jest w 95% źródło mojej wiedzy i wszystko opieram głównie na nim :) I korzystam z tego kodu, zatem - nie chodzi o to, że ma to wynikać z bluebooka, ale o to, że akurat w tym konkretnym kodzie nie widziałem jaką rolę toggle bit odgrywa.

henio napisał(a):
Ale pomyśl kto cię tam wie co ty kombinujesz w kodzie żeby odpowiedzieć na takie pytanie ? hmmm ;)


Kod to właściwie żywcem przepisany Pański kod :oops:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zarówno ir_init() jak i przerwanie mam w mainie bo miałem pewne problemy - jak były w pliku .c to wywalało mi błedy typu 'multiple declarations of...', a że chciałem się skupić bardziej na działaniu kodu, to tak to tymczasowo rozwiazalem.
pliki.h i .c wygladaja tak :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Pod PC5 podpieta jest ta diodka 'breakpoint'. Zaświeca się gdy naciskam guzik w pilocie, ale swieci bardzo slabo i chcialem sie dowiedziec co jest tego powodem.

henio napisał(a):
A druga sprawa widać że kręcisz się na razie jak bączek w miejscu bo cały czas popełniasz błąd zakładając że ten pilot to RC5 ??? na jakiej podstawie pytam ;)


To prawda, kręcę się w miejscu... Ale to dlatego, że nie wiem jak interpretować dane z tej stronki z danymi pilotów. Moim największym problemem z nauką uC jest to, że trudno mi znaleźć odpowiedzi na moje pytania w googlach (zdarza się, że czegoś nie zrozumiem z Bluebooka i potrzebuję czasem coś sobie rozjaśnić w głowie) i często błądzę po omacku. Ale nie poddaję się i walczę z nadzieją, że kiedyś się odwdzięczę temu forum pomagając innym użytkownikom :)

W tej sytuacji pozostaje mi tylko odwołać się do greenbooka w sprawie tego pilota :)



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

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

dlatego mysle ze o wiele latwiej byloby ci sie nauczyc i ruszyc z miejsca .... gdybys wzial normalny pilot rc5 i postaral sie najpierw od podszewki to zrozumiec ... mialbys tez na czym cwiczyc. Ty tymczasem wziales jakis calkiem inny pilot i to taki w ktorym nie ma zadnego TOGGLE BIT i probujesz sie go doszukac. Dlatego pisalem ze sie troszke zakreciles i podpowiadam ci jaka droga isc

_________________
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: 9 kwi 2014, o 11:02 
Offline
Nowy

Dołączył(a): 13 mar 2014
Posty: 5
Pomógł: 0

Witam ponownie! Postanowiłem spróbować z innym pilotem- niestety też space_enc, ale już trochę lepiej się przygotowałem :)
Uzbrojony w http://forum.atnel.pl/topic911.html ten temat wziąłem się do dzieła. Niestety, ale obecnie nie mam za bardzo wolnej gotówki na greenbooka, a też wiem, że jak uda mi się sprawić, żeby to działało to zrozumiem to raz na zawsze :) Mój pilocik przedstawia się następująco:
Cytuj:
begin remote

name RMT-1
bits 11
flags SPACE_ENC
eps 30
aeps 100

header 2487 501
one 686 501
zero 1287 501
ptrail 686
gap 24671
toggle_bit 0


begin codes
play 0x0000000000000531
stop 0x0000000000000731
ff 0x0000000000000631
rew 0x0000000000000131
pause 0x0000000000000331
slow 0x00000000000001D1
display 0x0000000000000521

end codes

end remote


Ja to widzę tak : Nadajnik emituje header - 2487us f nosna i 501 us przerwy, a następnie od razu emituje 11 bitow klawiszy. Ja w odbiorniku odbieram to jako 501us przerwy i 2487 us nosnej, zatem zbocze wywyolujace przerwanie bedzie narastajace. Jedynka logiczna z punktu widzenia odbiornika to 501us przerwy i 686us nosnej, a logiczne zero to 501us przerwy i 1287us nosnej. Wzoruję się na kodzie z blueeboka do RC5.
Zatem : czekam na przerwanie przez zbocze narastajace, zwiekszam licznik i wychodze z przerwania. Jak nastepuje nastepne przerwanie to stan licznika == 1 i jestem w pierwszej polowce pierwszego bitu klawisza. Odbieram wsyzstkie bity, a wartosci logiczne przypisuje tak : sprawdzam czy jestem w drugiej polowce bitu i jeżeli tak, to sprawdzam jak dlugo emitowana jest f nosna i na tej podstawie wypelniam IrData. Po wpisaniu kazdego bitu przesuwam IrData o jedno miejsce w lewo. Po 11 bitach klawisza czekam jeszcze az odbiore 1250 us nosnej, tj ptrail. (robie to tak, ze po prostu czekam, az cos zostanie odebrane, a co za tym idzie zwiekszy sie licznik - to jest podstawa do zakonczenia odbierania.)
Chciałbym prosić o pomoc, bo coś jednak nie działa jak powinno - czy rozumiem to wszystko poprawnie?
Załączam kod jedynie obsługi przerwania, gdyż to tam występuje problem.

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


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


Jak to możliwe, że spełniony jest warunek PulseWidth > HEADER_ONE ?
Patrząc na kody pilota nie widzę takiej możliwości.

Pozdrawiam serdecznie! :)



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

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