قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

abdalalabu5
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 55
نشاط [ abdalalabu5 ]
قوة السمعة:0
قديم 02-12-2013, 05:21 PM المشاركة 1   
افتراضي مساعدة يا استاذ funky او من لديه خبرة بموضوع IR Twitter FaceBook Google+



انا قمت بتحميل هذا الكود واشتغل مية المية وبعد فترة ارجعت احمله ولكن لم يشتغل قمت بقياس عرض نباضات فوجدت انه يقرا في get space اما ارقام قليلة جدا او ارقام عالية وبسال
ب لا اعرف ما سبب ارجوكم
هذا كود لريموت mp3
كود:
 //sbit ir_in at RA0_bit;                      // Infrared receiver input
//sbit ir_in_direction at TRISA0_bit;         // Infrared receiver input
int x,y;
unsigned int retint,lcd;
unsigned char ir_byte,count,bouton;
unsigned char ir_result[6];
char txt[10];
char txt2[10];

void interrupt()
{   if(intcon.f2==1)
{
     count++;
     intcon=0b0100000;
     TMR0L=0; }
}
 int get_mark(){




      TMR0L= 0; count=0;
      t0con.f7=1;
      for(;!portc.f2;){}
     // lcd=count;
      //intToStr(lcd,txt);
      //lcd_out(1,1,txt);
      t0con.f7=0;
      //lcd_out(2,1,"getmark");
      retint=2*(TMR0L+(count*256));


      return retint;
}

unsigned int get_space(){

     TMR0L= 0; count=0;
     t0con.f7=1;
      for(;portc.f2;){}
  t0con.f7=0;
     retint=2*(TMR0L+(count*256));
     return retint;
}
unsigned char get_nec_byte(void){
char n;
unsigned char ir_byte;
unsigned int temp_ir;

    for(n=0 ; n<8 ; n++){

        temp_ir = get_mark();

        temp_ir = get_space();
        ir_byte >>= 1;
        if ((temp_ir > 1200) && (temp_ir < 2300)){
            ir_byte += 0x80;
        }
    }
    return ir_byte;
}
void nec_read(void){
unsigned int temp_nec;
unsigned int count_byte;

        while(portc.f2){}
      //  lcd_out(2,1," ireach here");

       temp_nec = get_mark();
        intToStr(temp_nec,txt);
        lcd_out(1,1,txt);
        if ((temp_nec > 7500) && (temp_nec < 9500)){       // expect 9mS mark

            temp_nec = get_space();
            inttostr(temp_nec,txt2);
            lcd_out(2,1,txt2);

              // expect 4.5mS space
                for(count_byte = 0 ; count_byte < 4 ; count_byte++ ){
                    ir_result[count_byte] = get_nec_byte();

            }
        }
}
void main() {
    TRISc=0xFF;PORTc=0;
    trisb=0;
    portb=0;

    adcon1=0;;
    t0con=0b01000000;
    intcon=0b10100000;TMR0L = 0;
    TRISd = 0;                // PORTB is output
 Lcd_Init(&PORTd);         // Initialize LCD connected to PORTB
 Lcd_Cmd(Lcd_CLEAR);       // Clear display
     lcd_out(1,1,"lcd_run");
     delay_ms(2000);

     lcd_cmd(lcd_clear);
    portb.f7=1;
    delay_ms(2000);
    portb.f7=0;
    while(1){
        ir_result[0]=0;
        ir_result[1]=0;
        ir_result[2]=0;
        ir_result[3]=0;

        nec_read();


        if(ir_result[0]=~ir_result[1]){
            bouton = ir_result[2];
            switch(bouton){
                case 0x16: portb=~portb;break;
                case 0x0C: portb=~portb;break;
                case 0x18: portb=~portb;break;
                case 0x5E: portb=~portb;break;
                case 0x08: portb=~portb;break;
                case 0x1C:portb=~portb;break;
                case 0x5A: portb=~portb;break;
                case 0x52: portb=~portb;break;
                case 0x4A: portb=~portb;break;
                case 0x42: portb=~portb;break; //Button 3
                default: break;
            }
        }
    }
}


التعديل الأخير تم بواسطة : abdalalabu5 بتاريخ 02-12-2013 الساعة 05:27 PM
اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 01:56 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025