اخى mizort1989 مشروعك رائع وجميل وانا مهتم به جدا.
اعتقد ان امر pulsin فى لغة بيزيك سيقوم بفك الترميزكافضل مايكون و بدون اى تعقيدات وانت ذكرت هذا الامر فى احد المواضيع واتمنى ان تحاول استخدامه مع العلم ان لغة بيزيك سهلة جدا وتعلم اساسياتها لا يكلفك الا سويعات قليلة.
على كل حال هذا رابط عدد يناير 2005 من مجلة servo ,وفيه مقال للباحث كارل وليام يشرح فيه ترميز الريموت كنترول باستخدام بيك (pic) وبا استخدام لغة بيزيك
وهذا رابط المجلة:
http://www.scribd.com/doc/14612465/S...azine-01-2005و
هذا رابط البرنامج بالبيزيك+hex
http://filaty.com/f/908/86636/robota.zip.html
اما بالنسبة لاشارة سونى فهى بسيطة ولا تحتاج الى تايمر ولاحتى مقاطعات. وهذا برنامج قمت بكتابته لنفس الاشارة يقوم باخراج البتات فى شكل مصفوفة اول سبعة عناصر تمثل الcommand والخمسة الاخرى تمثل العنوان (address)
كود:
#define signal portb.f0
void main()
{
unsigned char s[12];
int x=1;
TRISB=0;
while(1){
end:
while (signal==1)
{
d:
while (signal==0)
{
u:
while (signal==1)
delay_us(750);
if(signal==1)
{
s[x]=1;
x=x+1;
if(x==13)
goto end;
goto d;
}
if(signal==0)
s[x]=1;
x=x+1;
if(x==13)
goto end;
goto u;
}}
} }
يعتمد البرنامج على طول النبضة بعد انتهاء ال start bit يكون تاخير زمنى اكبر من600u واقل من 1200u خلال هذه الفترة تكون النبضة +5v فى حالة ال1 وصفر فولت فى حالة ال 0,,,,,,,,
واتمنى ان تشاركنا معك فى تطورات المشروع وبالتوفيق.
اعتذر من الاخ فادى لهذا الخروج عن الموضوع الاساسى ولكنى فقط احببت المساعدة.