Witam. Napisałem sobie prosty program by odbierał rc5 i wysyłał komendę oraz adres przez rs232. Niby to działa, ale nie do końca, tzn. naciskając przyciski pilota rozpoczyna się transmisja rs232, ale oto co dostaję:
Jak widać, bardzo często pojawia się 31 --- 255 - dlaczego?
Program:
Inne informacje:
Odbiór bez przerwania (w pętli głównej) działa, program wgrywam bootloaderem (megaload), kwarc dobry, pilot na 100% rc5, ustawienia fusów:
hFuse D0
lFuse EF
Z góry dziękuje za pomoc.
31 --- 255
31 --- 255
31 --- 255
0 --- 3
0 --- 3
0 --- 3
0 --- 3
0 --- 3
0 --- 3
0 --- 3
0 --- 3
0 --- 3
0 --- 3
31 --- 255
31 --- 255
31 --- 255
31 --- 255
0 --- 2
31 --- 255
31 --- 255
0 --- 2
0 --- 2
31 --- 255
31 --- 255
0 --- 5
31 --- 255
31 --- 255
31 --- 255
31 --- 255
0 --- 4
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
31 --- 255
0 --- 15
31 --- 255
Jak widać, bardzo często pojawia się 31 --- 255 - dlaczego?
Program:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 4800
Config Rc5 = Pind.2
On Int0 Odbierz_rc5
Enable Int0
Enable Interrupts
Config Portc.0 = Output
Config Portc.1 = Output
Dim Odebrano As Bit
Dim Komenda As Byte , Adres As Byte
Set Portc.0
Set Portc.1
Do
If Odebrano = 1 Then
Odebrano = 0
Print Adres ; " --- " ; Komenda
Enable Int0
End If
Loop
End
Odbierz_rc5:
Disable Int0
Enable Interrupts
Reset Portc.1
Getrc5(adres , Komenda)
Adres = Adres And &B00011111
Odebrano = 1
Return
Inne informacje:
Odbiór bez przerwania (w pętli głównej) działa, program wgrywam bootloaderem (megaload), kwarc dobry, pilot na 100% rc5, ustawienia fusów:
hFuse D0
lFuse EF
Z góry dziękuje za pomoc.