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

   

الصورة الرمزية knforall
knforall
:: مهندس ::
تاريخ التسجيل: Dec 2011
الدولة: MOROCCO
المشاركات: 21
نشاط [ knforall ]
قوة السمعة:
قديم 09-04-2013, 12:39 AM المشاركة 9   
افتراضي



السلام عليك اخى الكريم و على اخى العزيز حيدر بارك الله فيه و على كل اعضاء القريه
اولا اذا كنت تريد التعامل مع كيفيه حساب الزمن بين وقوع حدثين و بدقه ( قد تصل تلك الدقه فى القياس الى 200 نانو ثانيه) فعليك باستخدام خاصيه الالتقاط المدرجه بالبك pic16f877a و يمكنك عرض القيم بشكل اوسع و افضل على شاشه LCD
يمكننى مساعدتك بكتابه الكود و ايضا ملف بروتس
شكرا لك أخي الفاضل للمساعدة أنا بانتظار ملفاتك أخي و شكرا

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 09-04-2013, 12:59 AM المشاركة 10   
افتراضي


شكرا لك أخي حيدر على مشاركتك الطيبة و لكن هذا ليس ما أردته حيث أنني أريد عند الضغط على الزر الأول يبدأ العد و لكن لا يظهر الزمن المستغرق على الشاشة إلا بعد الضغط على الزر الثاني ويبقى الزمن المستغرق ثابثا على الشاشة حتى يتم الضغط على الزر الأول و تعاد العملية و شكرا لمجهوداتك
هذه بسيطة ....
من الكود احذف العبارة التي باللون الاحمر و ضع بدلا منها التي باللون الاخضر فقط ...
كود:
void main() 
{trisa=3;trisb=0;portb=0;
while(1)
        {if(porta.f0==0)
                       {while(porta.f0==0){}
                        while(porta.f1==1){
                                           i++;
                                          display();
                                            delay_ms(1000);
                                           }
                       
                       }
        display();
        }

}

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

الصورة الرمزية knforall
knforall
:: مهندس ::
تاريخ التسجيل: Dec 2011
الدولة: MOROCCO
المشاركات: 21
نشاط [ knforall ]
قوة السمعة:
قديم 09-04-2013, 02:04 AM المشاركة 11   
افتراضي


هذه بسيطة ....
من الكود احذف العبارة التي باللون الاحمر و ضع بدلا منها التي باللون الاخضر فقط ...
كود:
void main() 
{trisa=3;trisb=0;portb=0;
while(1)
        {if(porta.f0==0)
                       {while(porta.f0==0){}
                        while(porta.f1==1){
                                           i++;
                                          display();
                                            delay_ms(1000);
                                           }
                       
                       }
        display();
        }

}
شكرا لك أخي العزيز حيدر على اهتمامك بموضوعي و لكن هذا البرنامج لا يناسب متطلباتي و كذلك عند الضغط على الأزرار لا تحدث استجابة فورية إلا بعد الضغط عدة مراة سوف أضعك في الصورة لما أريد إنجازه حتي تتضح لكم الصورة و تساعدني جزاك الله .
أنا أرغب بإنشاء مشروع يقوم بقياس سرعة جسم في حركة مستقيمية لذا قررت عمل عدة لواقط لازر بحيث كلما قطع الجسم لاقطين متتابعين يقوم برنامج بحساب المدة الزمنية بينهما و مع العلم أننا نعلم المسافة بين اللاقطين يمكننا حساب السرعة لذا أريد برنامج يطبق على لاقطين و بالتالي تعميمه على باقى الواقط لقد قمت بعمل برنامج باستعمال التايمر0 و مقاطعات البورت ب ونجحة التجربة إلا أنه لاحظت أنها غير عملية بالنسبة للضغطات السريعة حيث تبقى السرعة ثابثة لذا أردت مساعدة في إمكانية أخرى للبرمجة وإن كان هناك حل آخر لحساب السرعة فأرجو المساعدة وشكرا


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 09-04-2013, 02:55 AM المشاركة 12   
افتراضي


العد يبدا من لحظة رفع اليد عن مفتاح البدء ...
الزمن المستغرق للاستجابه يبدو انه ثانية واحدة و ليس عدة ضغطات ..
فقط تحتاج الامساك بالمفتاح لمدة ثانية على الاقل مع العلم ان هذه الثانية محسوبه من ضمن الزمن المستغرق ....
يمكن زيادة سرعة الاستجابة و جعلها عشر الثانية مثلا بتقليل الزمن في عبارة delay الى 100 ملي ثانية و عمل عداد يعد من 1 الى 10 و بذلك نحافظ على العد بالثواني و نزيد من سرعة الاستجابة ...



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