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

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

النمرالفولاذي
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2012
المشاركات: 134
نشاط [ النمرالفولاذي ]
قوة السمعة:0
قديم 22-01-2016, 01:50 PM المشاركة 1   
ha استفسار بخصوص كود Twitter FaceBook Google+



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

اعلانات

النمرالفولاذي
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2012
المشاركات: 134
نشاط [ النمرالفولاذي ]
قوة السمعة:0
قديم 23-01-2016, 07:03 PM المشاركة 2   
افتراضي


اخوان اتصور سوالي بسيط و انا منتضر ردكم .المطلوب هو دوارتين يعدون بفس الوقت هل هذا الشيء ممكن ام لا؟؟؟؟ انا استطعت تنفيذ العمل من خلال مجموعة من جمل loop - goto loop و شروط و عدادين لكن هذه الطريقة استنزفت كثير من المعالجة و سعة الخزن

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

ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 453
نشاط [ ahmed idris ]
قوة السمعة:0
قديم 24-01-2016, 04:54 PM المشاركة 3   
افتراضي


السلام عليكم
أخي إذا كنت تقصد متحكمات من PIC فإن المشهور في هذه الحال هو برمجة مقاطعة التايمر الداخلي
PIC16F628A كمثال يتوفر على أكثر من تايمر

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً النمرالفولاذي ( شكر العضو على هذه المشاركة )
اعجاب النمرالفولاذي ( أعجبته المشاركة )

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 24-01-2016, 05:29 PM المشاركة 4   
افتراضي


لكي تعمل دورتين بنفس الوقت يجب ان يكونا متداخلتين و هذا حسب طريقة عمل الكود ...

حيدر علاج حسن
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً النمرالفولاذي ( شكر العضو على هذه المشاركة )
اعجاب النمرالفولاذي ( أعجبته المشاركة )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 24-01-2016, 10:52 PM المشاركة 5   
افتراضي


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


السلام عليكم زرحمه الله


اليك هذا الكود ..

هذا الكود يستخدم التايمر رقم ( 0 ) فى البيك 16f

كود:
 



 //Timer0
//Prescaler 1:128; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms

//Place/Copy this part in declaration section


           int M;
           int X;


     void InitTimer0(){
     OPTION_REG	 = 0x86;
     TMR0	 = 100;
     INTCON	 = 0xA0;
 }

    void Interrupt(){
    if (TMR0IF_bit){
    TMR0IF_bit	 = 0;
    TMR0	 = 100;
    
    
    
     for(X=0;X<15;X++)
    {
    
    //Enter your code here
    
    
   }
    
    
  }
}



         void main(){

         InitTimer0();

           while(1){

      for(M=0;M<15;M++) 
    {

     //Enter your code here


    }

  }
   }


هذا الكود ينفذ حلقتين فى نفس الوقت .. بستخدام التايمر الداخلى للبيك ..

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً النمرالفولاذي ( شكر العضو على هذه المشاركة )
اعجاب النمرالفولاذي ( أعجبته المشاركة )

النمرالفولاذي
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2012
المشاركات: 134
نشاط [ النمرالفولاذي ]
قوة السمعة:0
قديم 26-01-2016, 04:46 PM المشاركة 6   
افتراضي


مشكورين اخواني جزاكم الله الف خير , اشكرك اخي عبد الله على المجهود اللهم اجعله في ميزان حسناته .
الان فهمت عمل التايمرات بشكل اوضح


النمرالفولاذي
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2012
المشاركات: 134
نشاط [ النمرالفولاذي ]
قوة السمعة:0
قديم 26-01-2016, 04:50 PM المشاركة 7   
افتراضي


اخي عبد الله سوال هل يمكن زيادة عدد الدواراتfor مثلا 3 او 4 كحد اقصى مع pic18f4520


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 27-01-2016, 12:59 AM المشاركة 8   
افتراضي


اخي عبد الله سوال هل يمكن زيادة عدد الدواراتfor مثلا 3 او 4 كحد اقصى مع pic18f4520
وعليكم السلام ورحمه الله



شكرااا على كلامك الطيب ..


اليك هذا الكود تم استخدام ال 3 تيمرات فى ال PIC16F877A

اخى ضع الكود الذى تريد استخدامة فى الأربع حلقات فى موقع ...
كود:
      //Enter your code here



كود:
     
    //  PIC16F877A

           int M;
           int X;
           int A;
           int B;


     //Timer0
//Prescaler 1:128; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms


         void InitTimer0(){
         OPTION_REG	 = 0x86;
         TMR0		 = 100;
         INTCON	         = 0xA0;
 }


     void Interrupt(){
     if (TMR0IF_bit){
     TMR0IF_bit	 = 0;
     TMR0	 = 100;
     

     for(X=0;X<15;X++)
     {
     
    //Enter your code here
    
    }
    
  }
}



   //Timer1
//Prescaler 1:1; TMR1 Preload = 45536; Actual Interrupt Time : 10 ms


      void InitTimer1(){
      T1CON	 = 0x01;
      TMR1IF_bit	 = 0;
      TMR1H    	         = 0xB1;
      TMR1L	         = 0xE0;
      TMR1IE_bit	 = 1;
      INTCON	         = 0xC0;
  }



       void Interrupt1(){
       if (TMR1IF_bit){
       TMR1IF_bit   = 0;
       TMR1H	    = 0xB1;
       TMR1L	    = 0xE0;
       
       
    for(M=0;M<15;M++)
     {

    //Enter your code here

    }
    
  }
}


    //Timer2
//Prescaler 1:16; Postscaler 1:5; TMR2 Preload = 250; Actual Interrupt Time : 10.0025 ms


       void InitTimer2(){
       T2CON	 = 0x26;
       PR2		 = 250;
       TMR2IE_bit	 = 1;
       INTCON    	 = 0xC0;
  }


      void Interrupt2(){
      if (TMR2IF_bit){
      TMR2IF_bit = 0;
      
    for(A=0;A<15;A++)
     {

    //Enter your code here

    }
    
  }
}


       void Init_PORT() 
    {
     TRISB = 0; PORTB = 0;
     TRISC = 0; PORTC = 0;
     TRISD = 0; PORTD = 0;
     TRISA = 0; PORTA = 0;
     TRISE = 0; PORTE = 0;
    }

        void main() {
         
        Init_PORT();
      
        InitTimer0();
        InitTimer1();
        InitTimer2();


        while(1){

       for(B=0;B<15;B++)
     {

    //Enter your code here

    }


}
 }



ملحوظة يستحسن استخدام كرستالة 8 ميجا




.....................


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 27-01-2016 الساعة 01:03 AM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً النمرالفولاذي ( شكر العضو على هذه المشاركة )
اعجاب النمرالفولاذي ( أعجبته المشاركة )
إضافة رد

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

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

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


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

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