Witam
Przeczytałem rozdział o RC5 z książki jednak nie rozumiem na razie działania przerwania ICP ... ale nie o tym temat.
Prosiłbym was panowie, abyście powiedzieli mi co robię źle w moim testowym programie ... Mam pilota Phillipsa i wiem że jest on na 100 % RC5 bo przetestowałem go na kodzie Pana Mirka i działa. Chciałem jednak jak zwykle podejść do zagadnienia nie na zasadzie korzystania z gotowca, tylko na rozwiązaniu problemu w inny ale zrozumiały dla mnie sposób.
Chciałbym zdekodować tego pilota zużywając przerwanie zewnętrzne INT1 i Timer0. Napisałem taki program, który mierzy mi czas od nastąpienia 1 przerwania zewnętrznego do drugiego. Innymi słowami chciałem zmierzyć czas stanu niskiego dla pierwszego półbitu ramki (zaznaczyłem na obrazku o co mi chodzi):
Oto kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Program ma działać tak, że jak wcisnę np przycisk 1 na pilocie, to nastąpi pomiar czasu trwania pierwszego półbitu ramki i następnie wynik ma się wyświetlić na terminalu. Moje pytanie jest takie: dlaczego w wyniku działania programu otrzymuję wynik:
licznik=335
skoro, czas trwania półbitu dla RC5 trwa 889us ? Czy ustawiłem gdzieś źle timer ? (chciałem co 1us - kwarc 16Mhz) . Co jest nie tak ? ...
Korzystam z EvB v5.1
Pozdrawiam
PS: jak coś jest nie jasne, albo lakonicznie opisane to proszę pytać