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

   

hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 03-10-2016, 01:00 PM المشاركة 281   
افتراضي



حياك الله اخي العزيز، في مجال طلب صغير لو تكرمت ، لقد ارسلت لك اول كود بعثته حضرتك بخصوص التحريك والذي اشتغل تمام ماعدا عيبة واحدة هي وميض الاحرف وكان علي porta.bo واريد منك ان تشرح كل سطر بالبرنامج لاني اتوقع ان الحل موجود فيه ، ادخل حضرتك عالخاص تجد الكود بارك الله فيك اخي

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 03-10-2016, 09:49 PM المشاركة 282   
sun


بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله و بركاته

كود:
حياك الله اخي العزيز ، كما يقال خذني علي قد عقلي ، اذا فرضنا ان المسار  الدائري يكتمل كل 4ms اي في كل دورة للمحرك يمسح 150 عمود في 4ms ثم يعود  البرنامج من البداية فلو عملنا  ازاحة عمود واحد في كل دورة.  عن طريق نبضة  السينسور تنتهي المسالة ههههههه.  هل هناك صيغة برمجية لهذا الكلام اخي  العزيز بصفتك محترف برمجة بصدق فانا لدي افكار ولكن لاملك الخبرة اللتي عند  حضرتك اكيد ، فانا مجرد مبتدء لهذه اللغة السحرية والرائعة ،بارك الله فيك  اخي     

اخى اخر نسخة من البرنامج معك تستخدم فكرتك هذه (فكرة رائعة تدل علىك)

كود:
حياك الله اخي العزيز، في مجال طلب صغير لو تكرمت ، لقد ارسلت لك اول كود  بعثته حضرتك بخصوص التحريك والذي اشتغل تمام ماعدا عيبة واحدة هي وميض  الاحرف وكان علي porta.bo واريد منك ان تشرح كل سطر بالبرنامج لاني اتوقع  ان الحل موجود فيه ، ادخل حضرتك عالخاص تجد الكود بارك الله فيك اخي     

و هو ما فعلته هذان نسختين احدهما القديمة و الاخرى الجديدة و لا تغير شئ فى الدائرة كلاهما تستخدم portb0 .
ارجو تجربتهم و المقارنة بينهما , المفروض كلاهما تعرض الحروف ثابتة عند بداية السنسور.

كود:
char letter_p[] = { 0xff, 0xff,0x09 , 0x09, 0x0f, 0x06} ;
char letter_i[] = { 0x00, 0x81, 0xff, 0xff, 0x81, 0x00};
char letter_c[] = { 0x1c, 0x3e, 0x41, 0x41, 0x41, 0x22};
char i = 0;
char shift = 0 , count = 0;

void TIMER0() iv 0x0004 ics ICS_AUTO {
  if(INTCON.TMR0IF==1){
     INTCON.TMR0IF = 0;
     count++;
         if(count>= 8){
         count = 0;
         shift++;
         }

  }
}

void main() {
INTCON |= 1<<GIE | 1<<T0IE ;
OPTION_REG &= ~1<<T0CS & ~1<<PSA ;
OPTION_REG |= 0X07; // PRESC=256
trisb=0x01;
portb=0;
//cmcon=7;
//trisa=0x01;
porta=0;
    while(1){
          while(portb.b0==1){}
        //  vdelay_ms(shift * 1);
          for(i=0; i<6; i++){portb=letter_p[i]; delay_us(300);} //P
          portb=0;  delay_us(500);

          for(i=0; i<6; i++){portb=letter_i[i]; delay_us(300);} // I
          portb=0;  delay_us(500);

          for(i=0; i<6; i++){portb=letter_c[i]; delay_us(300);}// C
          portb=0;

    }
}
البرنامج الثانى :

كود:
char letter_p[] ={0xff,0xff,0x09,0x09,0x0f,0x06};
char letter_i[] ={0x00,0x81,0xff,0xff,0x81,0x00};
char letter_c[] ={0x1c,0x3e,0x41,0x41,0x41,0x22};

unsigned int  i=0, shift=0, count=0;
void varDelay_us( unsigned int uss);

 void interrupt() iv 0x0004 ics ICS_AUTO {
/*if(INTCON.TMR0IF==1)
 {
    INTCON.TMR0IF=0;
    count++;
    if(count>=3)
    {
        count=0;
        shift++;

    }
  }*/
 if(INTCON.INTF==1)
 {
       /*shift++;
        if(shift > 255){shift=0;}
        vdelay_ms(shift/5);*/
       INTCON.INTF=0;
   //   porta=~porta;
        for(i=0;i<6;i++){portb=letter_p[i]<<1; delay_us(300);}
        portb=0; delay_us(500);
        for(i=0;i<6;i++){portb=letter_i[i]<<1 ; delay_us(300);}
        portb=0; delay_us(500);
        for(i=0;i<6;i++){portb=letter_c[i]<<1 ; delay_us(300);}
        portb=0;
 }
}
/*void varDelay_us( unsigned int uss){
     for (i=0; i<(uss/5); i++)
     {
      delay_ms(5);
     }
}*/
void main() {
 INTCON.GIE= 1;
 INTCON.INTE=1;
 OPTION_REG.INTEDG=1;

/*INTCON.T0IE=1;
OPTION_REG &=~1<<T0CS &~1<<PSA ;
OPTION_REG |=0X07;*/
trisa=0;
porta=0;
trisb=1;
portb=0;
//cmcon=7;
    while(1){ }
}

الله ولى التوفيق



اللهم اجعلنا مؤمنين حقا
و علمنا ما ينفعنا و ينفع بنا
اللهم اكتب حياة ترضيك و ميتة تضحكك منا
و احفظ حلب و اهلها و سائر بلادنا



اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 03-10-2016, 10:19 PM المشاركة 283   
افتراضي


حياك الله اخي العزيز ،الله يحفظك ، وشكرا جزيلا الك وغدا باذن الله صباحا اقوم بالتجربة واخبرك بالنتائج ،بارك الله فيك


hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 04-10-2016, 12:03 PM المشاركة 284   
افتراضي


حياك الله استاذي العظيم،صباحك سعيد، قمت بالتجربة وكما توقعت اخي العزيز كانت الحروف ثابتة في الكودين، وقمت ايضا بالنيابة عنك في الكود الاول رفعت الحظر عن (shift*1) وجربت التجربة فتحركت الحروف مع وميض بالليدات ، والبارحة اعدت حساباتي فيما يتعلق بالسنسور وانتبهت لنقطة قد تكون مهمة وسبب كل المشاكل ; لدي الذراع المتحرك طوله14 cm اي عندما يدور يرسم دائرة قطرها 88 cm اي في كل 40ms من دورة المحرك يمسح 176 عمود بمعني كل 40ms تخرج نبضة من السنسور للمقاطعة هاذا في حال السنسور موضوع في اخر الذراع ولكن السنسور في المشروع موضوع علي مسافة 4cm اي يمسح دائرة قطرها 25cm اي كل 25cmتخرج نبضة من السينسور. بينما. الليدات تمسح دائرة قطرها 88cm اي سيصبح لدينا عدم تزامن بين نبضات السنسور ومعطيات الخرج ،فما رايك اخي العزيز وبالتالي انت الخبير في هذا حياك الله،


hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 04-10-2016, 08:26 PM المشاركة 285   
افتراضي


عفوا اخي العزيز محيط الدائرة وليس قطرها. ،حياك الله.


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 05-10-2016, 08:45 PM المشاركة 286   
sun


اخى العزيز اعتقد اننا فعلنا قدر علمنا فى الموضوع
و اقترح اننا نبدأ نقرأ فى الموضوع لعل الله يعرفنا ما اخطأنا به
و هل هو سوفت او هاردوير و اذا وصل احدنا لشئ نستكمل
الموضوع ان شاء الله .

و الله الموفق و المستعان


hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 05-10-2016, 09:04 PM المشاركة 287   
افتراضي


استاذي العظيم والله كنت اخ ومعلم مساعدتك لي لن انساها ابدا والله يجزيك بالف خير بارك الله فيك كنت بصدق محترف برمجة ولاالومك المشروع ليس بي يديك واذا استجد شي بخبرك عالخاص ،حياك الله اخي العزيز


hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 06-10-2016, 03:49 PM المشاركة 288   
افتراضي


حياك الله اخي العزيز، عساك تكون بخير ،يبدو مالي غني عنك ، فقط سوال صغير ،برمجت 6 احرف ضهرت النتيجة تمام الاحرف واضحة وعندما جربت برمج اكثر من 6 احرف يعطيني برنامج microc finished error وراجعت الكود شي 100 مرة مافي اخطاء يعني اي حرف بعد الرقم 6 يعطيني خطأ برايك اخي العزيز شو المشكلة كونك اخبر ، بارك الله فيك



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