Witam,
mam może trochę głupie pytanie, ale nie mogę jednej rzeczy zrozumieć odnośnie przesyłu informacji. Prawie wszystkie tematy na elektrodzie odnośnie odbierania informacji są w języku Bascom, a znam tylko C oraz trochę assemblera.
Załóżmy, że mam Atmegę8, do INT0 dołączam nóżkę TSOP1736, która w przypadku kiedy pojawi się jakieś źródło z pilota wywołuje przerwanie, no i właśnie co dalej?
W linku http://lirc.sourceforge.net/remotes/dell/MR425 znalazłem informację, że jest to kod RC6.
Ze strony: http://www.sbprojects.com/knowledge/ir/rc6.htm wiem, że pierwszy sygnał to u mnie będzie 2,666ms, później 889us przerwa.
Rozumiem, że mam włączyć Timer i liczyć jak długo trwa sygnał, jeżeli w przybliżeniu bezie to 2,666ms to znaczy, że za chwilę będzie przerwa i zostanie nadana wiadomość? Później w zależności czy najpierw jest sygnał a później przerwa czy odwrotnie to znaczy że jest 0 lub 1 logiczne i składając cały sygnał można stwierdzić z tego pierwszego linka że został odpowiedni przycisk wciśnięty?
Dobrze to rozumiem, czy jakoś łatwiej da się to zrobić?
Na lircu są jeszcze dodatkowe informacje takie jak:
" eps 30
aeps 100
header 2713 866
one 468 422
zero 468 422
pre_data_bits 29
pre_data 0x37FE354
gap 106740
toggle_bit_mask 0x8000
rc6_mask 0x100000000
"
czy to jest mi do czegoś potrzebne?
Z góry dziękuję za odpowiedź i pozdrawiam
--------------------------------------------------------------------
Witam ponownie,
na prawdę nikt nie jest w stanie mi pomóc, czy ktokolwiek kiedykolwiek programował w C odbieranie takiego kodu? Nie chodzi mi o napisanie programu, ale wytłumaczenie jak to działa, ewentualnie podanie przykładu programu w C bądz assemblerze z opisem.
Rozumiem że te dane: header 2713, 866, 468 to są czasy wysyłania przez pilot impulsów,
Mam pytanie odnośnie tego: czy to znaczy, że to nie jest kod RC6, tylko lekko zmodyfikowana wersja (trochę różnią się te czasy), czy po prostu ktoś podał złe, ewentualnie jego pilot jest na tyle niedokładny.
Czy wartości tych czasów będą mi potrzebne w moim programie, czy jest może jakaś gotowa funkcja do tego?
mam może trochę głupie pytanie, ale nie mogę jednej rzeczy zrozumieć odnośnie przesyłu informacji. Prawie wszystkie tematy na elektrodzie odnośnie odbierania informacji są w języku Bascom, a znam tylko C oraz trochę assemblera.
Załóżmy, że mam Atmegę8, do INT0 dołączam nóżkę TSOP1736, która w przypadku kiedy pojawi się jakieś źródło z pilota wywołuje przerwanie, no i właśnie co dalej?
W linku http://lirc.sourceforge.net/remotes/dell/MR425 znalazłem informację, że jest to kod RC6.
Ze strony: http://www.sbprojects.com/knowledge/ir/rc6.htm wiem, że pierwszy sygnał to u mnie będzie 2,666ms, później 889us przerwa.
Rozumiem, że mam włączyć Timer i liczyć jak długo trwa sygnał, jeżeli w przybliżeniu bezie to 2,666ms to znaczy, że za chwilę będzie przerwa i zostanie nadana wiadomość? Później w zależności czy najpierw jest sygnał a później przerwa czy odwrotnie to znaczy że jest 0 lub 1 logiczne i składając cały sygnał można stwierdzić z tego pierwszego linka że został odpowiedni przycisk wciśnięty?
Dobrze to rozumiem, czy jakoś łatwiej da się to zrobić?
Na lircu są jeszcze dodatkowe informacje takie jak:
" eps 30
aeps 100
header 2713 866
one 468 422
zero 468 422
pre_data_bits 29
pre_data 0x37FE354
gap 106740
toggle_bit_mask 0x8000
rc6_mask 0x100000000
"
czy to jest mi do czegoś potrzebne?
Z góry dziękuję za odpowiedź i pozdrawiam
--------------------------------------------------------------------
Witam ponownie,
na prawdę nikt nie jest w stanie mi pomóc, czy ktokolwiek kiedykolwiek programował w C odbieranie takiego kodu? Nie chodzi mi o napisanie programu, ale wytłumaczenie jak to działa, ewentualnie podanie przykładu programu w C bądz assemblerze z opisem.
Rozumiem że te dane: header 2713, 866, 468 to są czasy wysyłania przez pilot impulsów,
Mam pytanie odnośnie tego: czy to znaczy, że to nie jest kod RC6, tylko lekko zmodyfikowana wersja (trochę różnią się te czasy), czy po prostu ktoś podał złe, ewentualnie jego pilot jest na tyle niedokładny.
Czy wartości tych czasów będą mi potrzebne w moim programie, czy jest może jakaś gotowa funkcja do tego?