Witam,
zabrałem się za próby z pilotem podczerwieni i wysyłaniem sygnałów RC5 z pilota do odbiornika. Pilot posiada procesor ATmega48P (kwarc wewnętrzny 8MHz), odbiornik podłączony jest do ATmega168P (kwarc zewnętrzny 20MHz).
Z Bluebooka pobrałem prawie cały gotowy program do pilota.
Wprowadziłem kilka zmian w programie i teraz prezentuje się następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Po podłączeniu oscyloskopu do sygnału na odbiorniku podczerwieni mam 5V, natomiast w momencie podania sygnału z pilota pojawia się sygnał (prawdopodobnie taki jak powinien być). Pojawia się 13 razy spadek z 5V do 0V z częstotliwością ok 36kHz.
Do odbierania sygnału wykorzystałem program z Bluebooka (RC5_decode). Niestety nie jestem w stanie odebrać sygnału.
W pliku ir_decode.h zmieniłem:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W pliku ir_decode.c zmieniłem:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W moim pliku main.c kod wygląda następująco (usunąłem fragmenty odnośnie wyświetlania liczby) :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Po każdym wciśnięciu przycisku na pilocie powinna zmieniać mi się wartość "liczba" o 1 w górę. Pominięty fragment do wyświetlania liczby działa na pewno poprawnie, wyświetla mi każdą liczbę jaką sobie wpiszę.
W którym momencie popełniam błąd? Wydaje mi się, że źle dokonuje odbioru sygnału, natomiast nie do końca rozumiem gdzie popełniam błąd. Proszę o nakierowanie mnie na rozwiązanie problemu.
Z góry dziękuję za wszelkie podpowiedzi.
------------------------ [ Dodano po: 20 minutach ]Tutaj przebieg z oscyloskopu na odbiorniku podczerwieni. Taki sygnał wchodzi na procesor.