سلام.
2 ماهه دارم با یه برنامه سر و کله میزنم که بتونم کدهای یه ریموت رو تشخیص بدم تا یه جاهایی موفق بودم.
طبق گفته دوست عزیز pardazesh-gar
که گفت یه مقاله در این رابطه بنویسم.
ببینید اولا باید بدونیم که ریموت با چه پروتکلی دیتا ارسال میکنه:
برای اطلاعات بیشتر پست :
http://www.iranled.com/forum/thread-19032.html
رو حتما ببینید.
میرسید به جایی که برنامه شمارش پالسها رو نوشته
کد:
$regfile = "m128def.dat" : $crystal = 8000000 : Baud = 9600
Dim B As Byte , W(36) As Word
Print "WWW.IRANLED.COM"
Do
Wait 1 : Print "ANT"
B = 1
Bitwait Pinb.0 , Reset
Do
Do
Incr W(b) : Waitus 95
Loop Until Pinb.0 = 1
Incr B
Do
Incr W(b) : Waitus 95
Loop Until Pinb.0 = 0
Incr B
Loop Until B > 36
For B = 1 To 36
Print B ; "= " ; W(b)
W(b) = 0
Next
Wait 2
Loop
بله با این کار دقیقا پالسهایی که بصورت high , low ارسال میشه شمارش میشه.
اما من میگم این کارها رو بکنید »
1- کریستال رو 1 مگ کنید(برای رسیدن به زمان 1 ثانیه واقعی تر)
2- اونقدر مقدار دستورات waitus را تغییر بدید تا به زمانهای واقعی پروتکل ریموت برسید.(یعنی مثلا تایم start bit تو پروتکلتون اگه مثلا 2,5ms هست باید تو عدد اولتون 25 رو ببینید. حالا میشه گفت به زمان صحیح دریافت پالسها رسیدید.
3-حالا با داشتن محدوه های زمان 0 و 1 اون رنج t1min,max , t2min,max ,.... تغییر بدید به زمانهایی که برای هر 0 و 1 تون بدست اومده.
4- حالا 0 و 1 شدن بیتها تجزیه تحلیل میشه تا آدرس و کدهای هر دکمه شناسایی بشه.
اگه مشکلی داشتید این حقیر در حد توان بررسی مینمایم.
مرسی.....