Zwracam się z prośbą o pomoc w następującej kwestii:
Problem polega na odczytaniu kodu RC5.
Zbudowałem prosty układ składający się z uP AT90S2313 do którego to podłączyłem niezbędne peryferia (rezonator itd.) oraz do wyprowadzenie PD2 (INT0) standardową aplikacje odbiornika podczerwieni tfms5xx0. Napisałem następujący program:
Kod: Zaznacz cały
$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600
$lib "mcsbyte.lbx"
Config Int0 = Low Level
Config Rc5 = Pind.2 [timer = 1]
On Int0 Pobrc5
Config Pind.2 = Input
Dim Address As Byte , Command As Byte
Dim Odebrano As Bit
Enable Interrupts
Enable Int0
Set Odebrano
Print "Poczatek..."
Do
If Odebrano = 1 Then
Print Address ; Command
Reset Odebrano
Enable Int0
End If
Loop
End
Pobrc5:
Disable Int0
Enable Interrupts
Getrc5(address , Command)
Command = Command And &B01111111
Set Odebrano
ReturnPo zaprogramowaniu i uruchomieniu procka wszystko jest w porządku, zgłasza się komunikat "Początek..." oraz wyświetla się wartość zmiennych "00" . Problem polega na tym, że po naciśnięciu dowolnego klawisza np. pilota TV program reaguje, ale zawsze odczytuje wartości:255 i 127.
Wygląda to tak jak by nie działała funkcja "Getrc5()".
Gdzie może być błąd?
Sprawdzałem dla różnych wartości częstotliwości rezonatora itd. Efekt ciągle ten sam.
Pozdrawiam
Łukasz
www.obwodypcb.com
