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

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

الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 23-11-2010, 11:01 PM المشاركة 1   



كما نعلم جميعا ان البيك ينفذ الاوامر بشكل تسلسلي طيب جميل جدا والاجمل من ذلك انه ينفذها بسرعة فائقة و كبيرة وهذا ايضا روعة اين المشكلة اذا? تبدأ المشكلة عندما يخطو البيك اول خطواته مع العالم الخارجي المتمثل في القطع الالكترونية المحيطة به سوأ كانت مستعملة كدخل او كخرج والامثلة على ذالك كثيرة ناخذ على سبيل المثال ليد ضوئي كأبسط الاشياء والامر يكون بالمثال التالي..اشعل اليد..اطفئ اليد.. البيك ينفذ هذه الامر حرفيا يطفئ ويشعل ولاكن بسرعة كبيرة تفوق العين المجردة اي ان العين لا يمكنها الا ان ترى سوى ليد مشتعل دائما او منطفئ دائما وهذا مشكل لابد له من حل المبرمج تنبه لهذا المشكل وقدم لنا الحل التالي:DELAY هذا الامرعبارة عن استراحة للبيك يحددها المبرمج نفسه على حسب الوقت المطلوب تنفيذه.طيب الان نرجع الى اليد ونطبق عليه الامر DELAY ونرى النتائج ويكون الامر كالتالي..اشعل اليد.DELAY .اطفئ اليد.DELAY .البيك ينفذ الامر الاول بسرعة فائقة ثم يذهب لينفذ امر الاطفاء ولاكنه يجد امراخروهو الELAY فيذهب اضا بسرعة ليحسب قيمة الوقت المحدد مسبقا من طرف المبرمج بحيث ان الوقت المحدد=DELAY قد يكون ثانية او اقل او اكثر.طيب البيك اشعل اليد ذهب ليحسب الوقت المعطى له عاد ليطبق الامر الاخر وهو اطفاء اليد.الان يمكن للعين المجرده ان ترى عملية اشعال اليد واطفائه بسببا انشغال البيك بحساب الوقت....
وللموضوع تكملة ان شاء الله دمتم في رعاية الله

اعلانات

الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 24-11-2010, 02:55 AM المشاركة 2   
افتراضي


بسم الله
السلام عليكم
انشغال البيك بحساب الوقت....هذه نقطة مهمة لابد ان تناقش ويسلط عليها الكثير من الضوء..وكما قلنا البيك يقرأ ثم يفسر او يترجم الشيء الذي قرئه من العالم الخارجي الى العالم الخرجي.ويتم ذالك عن طريق توصيل الاجهزة المساعدة و المناسبة لكل حالة.وكمثال.قياس درجة الحرارة.البيك يقرأ حساس لدرجة الحرارة ويحول ماقرئه على شاشة LCD او ليدات سباعية القطبية ..يراقب ثم يقرا حالة السويتشات ويجعل كل حركة في مكانها مستندا في ذالك كله على البرنامج الرئيسي. طيب كلام جميل ومنطقي..نرجع الان الى موضوعنا الاساسي وهو انشغال البيك بحساب الوقت.مثال..
سويتش 1 .......................................ليد 1
سويتش 2 .......................................ليد 2
سويتش3 ........................................ليد 3
سويتش4 ........................................ يوقف البيك على العمل
اذا تم الضغط على السويتش رقم 1 اليد رقم 1 يشتعل فلاشر لا يتوقف
اذا تم الضغط على السويتش رقم 2 اليد رقم 2 يشتعل لمدة30 ثانية ويتوقف
اذا تم الضغط على السويتش رقم 3 اليد رقم 3 يشتعل ويبقى كذالذ حتى يتم الضغط على السويتش رقم 4 ليوقف البيك بشكل نهائي حتى يتم الضغط على السويتش رقم1 وتتكرر العملية......................المشكلة.............. هي عندما يذهب البيك لحساب التأخير الزمني المقدر ب30 ثانية فان البيك لا يستجيب لاي امر حتى يكمل العد ماهو الحل الامثل لهذا المشكل دون اللجؤ الى INTERRUPT .....الحمد لله
السلام عليكم

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

ahmeedzeki
:: مهندس ::
تاريخ التسجيل: Oct 2010
المشاركات: 34
نشاط [ ahmeedzeki ]
قوة السمعة:0
قديم 24-11-2010, 06:17 AM المشاركة 3   
افتراضي


السلام عليكم
عندي حل بسيط و متواضع لهذه المشكلة و اكيد الكبار في المنتدى لديهم حلول افضل و في انتظار حلولهم
بالنسبة لي فان هذه المشكلة واجهتني و قد فكرت في حل لها و هو :
تقسيم الدلي. اي لا نكتب
Delay_ms(30)
بل ممكن تقسيم الدلي الى وحدات اصغر مثل 1 ملي و جعلها داخل عداد و في داخل العداد ممكن مراقبة اي سويتجات و الخروج من العداد تحت اي شرط و شكرا
ارجو ان اكون وفقت في شرح الحل و نحن في انتظار الكبار لاقتراح حلول افضل
و لا تنسونا من دعاءكم


الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 25-11-2010, 08:37 PM المشاركة 4   
افتراضي


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


الصورة الرمزية SAMI-ALG
SAMI-ALG
:: مهندس جيد ::
تاريخ التسجيل: Jul 2009
الدولة: الجزائر
المشاركات: 199
نشاط [ SAMI-ALG ]
قوة السمعة:0
قديم 25-11-2010, 08:55 PM المشاركة 5   
افتراضي


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

- مع ان الحل الامثل هو اللجوء الى les interruptions

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

وبانتظار ما سيطرحه باقي الاخوة من افكار

ودمتم في رعاية الله وحفظه


الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 25-11-2010, 09:38 PM المشاركة 6   
افتراضي


السلام عليكم اخي SAMI_ALG
المقاطعات اوthe interrupts اوles interruptions
ما ادت المطلوب منها .عندما ينتهي البيك من برنامج المقاطعة يرجع حيث كان وهذا ليس جيدا بنسبة لمشروعي الذي انا بصدد القيام به لولا مشكل delay ....
المطلوب من الاخوه الافاضل مثال سوأ كان ب ال C او ب الASM مع الشكر الجزيل....

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


ahmeedzeki
:: مهندس ::
تاريخ التسجيل: Oct 2010
المشاركات: 34
نشاط [ ahmeedzeki ]
قوة السمعة:0
قديم 26-11-2010, 10:41 AM المشاركة 7   
افتراضي


السلام عليكم
تفضل اخي العزيز
http://www.4shared.com/file/PwmJdRyQ/delay_problem.html
و اذا كان هناك اي سؤال او شيء غير مفهوم فسأكون سعيد للرد او الشرح
و لا تنسينا من دعاءك
شيء اخير هذا البرنامج هو حسب ما فهمته من الشرحك يا استاذ islem فاذا كان هناك اي خطأ ارجو التنبيه
و شكرا


الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 26-11-2010, 03:53 PM المشاركة 8   
افتراضي


من لم يشكر الناس لم يشكر الله..

اتقدم لك اخيahmeedzeki بخالص الشكر والدعاء لك حفظك الله ..

الان اريدك ان تلقي نضره على هذا الرابط:

http://www.mediafire.com/?079bmi8sunpm9tr

سترى انه يوحد سوتشb.p موصل علىRA0 يتحكم في ا لليد الموصول علىRB1

وهناك ايضا سويتش ثاني موصول على RA1 يتحكم في الليد الموصول علىRB7

العملية تتم كالتالي:عند الضغظ على السوتش الموصول على RA0 مع رفع اليد

يشتعل الليد الموصول على RB1 يبقى مشتعل لمدة 5 ثواني وينطفئ. نفس الشيء
يطبق على RA1 وRB7........كل شئ واضح الان.طيب .تم الضغط على RA0 اشتعل الليد.جميل ولاكن الشيء الذي ليس جميلا ابدا .انا في خلال 2 ثواني
اريد ان اشغل الليد الثاني هنا تظهر المشكلة البيك لالستجيب حتى ينتهي
من حساب 5 ثواني........???????????????? اليك الخط اخيahmeedzeki
وارجو ان تصبر علي حتى تتضح لدي الامور وشكرا لك استاذ ahmeedzeki
على طول بالك..

إضافة رد

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

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

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


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

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