Johny_Szczecin napisał: Dawno w Bascomie AVR nie robiłem - i faktycznie w ustawieniach kompilatora nie ma nic o nozce pod którą podłączasz odbiornik, ale należy ją zadeklarować poleceniem config rc5 - co zresztą pewnie korzystając z pomocy zrobiłeś.
Jednak nadal problem jest w tym, że odbiór kodu musi zostać zainicjowany - i właśnie dlatego MUSISZ sprawdzać stan nogi programowo i wykryć zbocze opadające albo wykorzystać do tego przerwanie - może być nawet przerwanie od tego Timera0 (ustaw jako licznik wyzwalany zewn.) - opisanego w helpie, który służy do odmierzania czasu w tejże procedurze. W obsłudze przerwania zamieszczasz dopiero polecenie GETRC5.
Odczówam, że sensownie Piszesz, ponieważ po pierwszych próbach, faktycznie coś zaczyna działać. Nie do końca rozumiem co oznacza ustawienie Timera0 jako licznik wyzwalany zewnętrznie (interpretuje to w następujący sposób:na postoju Timer0 oczekuje na wyzwolenie - czyli nie był Enable;w momencie stanu niskiego na nóżce, uruchamia się procedura INT0, a w niej wyzwala Timer0 - Enable Timer0 - w ten spodób zostaje wyzwolony zewnętrznie). Napisałem pierwszy programik, który udowadnia, że odbiór jest możliwy(reaguje na sygnały z pilota). Wiem, że jest w nim masa błędów, ale Jakbyś był tak uprzejmy, Rzyć na niego okiem.
Jeśli nie byłoby to problemem, proszę o króciutki programik, który wg Ciebie mógłby pokazywać adres i rozkaz z pilota. Oto mój programik:
Dim Address As Byte , Command As Byte , A As Byte , B As Byte
Config Timer0 = Timer , Prescale = 1
Config Rc5 = Pind.2
Enable Interrupts
Enable Int0
On Int0 Przerw
On Timer0 Teraz
Cls
Lcd "Waiting for RC5"
Do
If A <> Address Then
Cls
Lcd "Adres: " ; Address
Lowerline
Lcd "Rozkaz: " ; Command
End If
If B <> Command Then
Cls
Lcd "Adres: " ; Address
Lowerline
Lcd "Rozkaz: " ; Command
End If
A = Address : B = Command
Loop : End
Przerw:
Disable Int0
Enable Timer0
Enable Int0
Return
Teraz:
Disable Timer0
Getrc5(address , Command)
Return