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

   

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 14-05-2015, 12:15 PM المشاركة 9   
افتراضي



أخي لغة c لبرمجة الميكروكونترولر أنواع والمشهور هنا في هذا القسم هو الميكروسي وهي اللغة التي تتوفر فيها حظوظ كبيرة للحصول على المساعدة من طرف الإخوة الأعضاء ..
بالنسبة لمشروعك أظن أن الدقة المتناهية لهذا المؤقت غير مطلوبة ولا يحتاج لكريستالة خارجية وأعتقد أن بيك عادي مثل Pic16F628A كافي (أو أصغر منه ) فهو يتوفر على مذبذب داخلي بدقة مقبولة .
والموضوع بسيط إن شاء الله ممكن بالسي أو بغيره.

اعلانات

moha-affa
:: مهندس ::
تاريخ التسجيل: May 2015
المشاركات: 14
نشاط [ moha-affa ]
قوة السمعة:
قديم 14-05-2015, 12:23 PM المشاركة 10   
افتراضي


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

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

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 14-05-2015, 12:53 PM المشاركة 11   
افتراضي


صحيح اخي معك حق الدقة الكبيرة مو ضرورية والكريستالة موجودة مسبقا بالمشروع ..
المشكلة هي ان الجهاز جاهز و ما اريده هو اضافة هذه الوظيفة عليه
يعني لديكم برنامج بالسي على Pic18f4580 يشغل الجهاز و ما تريدون هو إضافة كود المؤقت للكود الأصلي ..
بالنسبة لي ممكن أعمل هذا الكود ببرنامج يدعى Flowcode يكفي أن أن اقوم بتعديلات بسيطة على الكود وتغيير الكريستالة إلى 20 ميغا.
لكن لو تحب كتابة الكود بلغة السي بطريقة بسيطة ممكن أساعدك على قدر المستطاع .
بحسب الدقة المطلوبة لا أعتقد أنكم بحاجة لاستخدام مقاطعة التايمر 0 ، يكفي استخدام زمن تأخير (delay) مع متغيرات مبرمجة كعدادات وهذه الطريقة بسيطة جدا وكافية لمشروعكم .
طبعا ممكن لخبراء الميكروسي في هذا القسم أن يتدخلوا ويضعون لك هذه الجزء من الكود ..


moha-affa
:: مهندس ::
تاريخ التسجيل: May 2015
المشاركات: 14
نشاط [ moha-affa ]
قوة السمعة:
قديم 14-05-2015, 01:03 PM المشاركة 12   
افتراضي


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


Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 14-05-2015, 02:13 PM المشاركة 13   
افتراضي


صحيح أخي باستخدام ال delay الموضوع بيبقى برمجيا بسيط ولكن كل هذه المتغيرات رح تفقد القيمة اللي وصلت بالعد لعندها بمجرد اطفاء الجهاز واعادة تشغيله ... وهيك ما اتحقق المطلوب ... ضروري احصل على عداد يحافظ على قيمته بحيث عند اطفاء الجهاز وتشغيله يرجع يتابع العد من مكان ما توقف .... أرجو اني كون قدرت وصل الفكرة ....
تحياتي لحضرتك ,,..
أخي هذا معطى جديد في طلبك ولاعلاقة له بطريقة حساب الزمن سواء باستخدام المقاطعة التايمر 0 أو باستخدام delay .
لكن الحل ممكن بإحدى الطريقتين:
1- عمل تغذية تأمين ببطارية للبيك بحيث يبقى البيك وحده شغال حتى عند انقطاع التيار عن الجهاز ككل .
فقط البيك هو من سيتغذى على البطارية الاضافية أما باقي عناصر الجهاز فينقطع عنها التيار عند فصل الجهاز عن المصدر الرئيس .
وهذا ممكن الكترونيا بإضافة عناصر بسيطة مثل الديود .
2- الطريقة الثانية بإضافة متكاملة صغيرة مشهورة خاصة للساعة تعمل ببطارية أمان 3 فولت.


Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 15-05-2015, 01:15 PM المشاركة 14   
افتراضي


صحيح أخي باستخدام ال delay الموضوع بيبقى برمجيا بسيط ولكن كل هذه المتغيرات رح تفقد القيمة اللي وصلت بالعد لعندها بمجرد اطفاء الجهاز واعادة تشغيله ... وهيك ما اتحقق المطلوب ... ضروري احصل على عداد يحافظ على قيمته بحيث عند اطفاء الجهاز وتشغيله يرجع يتابع العد من مكان ما توقف .... أرجو اني كون قدرت وصل الفكرة ....
تحياتي لحضرتك ,,..
أخي هذا معطى جديد في طلبك ولاعلاقة له بطريقة حساب الزمن سواء باستخدام المقاطعة التايمر 0 أو باستخدام delay .
لكن الحل ممكن بإحدى الطريقتين:
1- عمل تغذية تأمين ببطارية للبيك بحيث يبقى البيك وحده شغال حتى عند انقطاع التيار عن الجهاز ككل .
فقط البيك هو من سيتغذى على البطارية الاضافية أما باقي عناصر الجهاز فينقطع عنها التيار عند فصل الجهاز عن المصدر الرئيس .
وهذا ممكن الكترونيا بإضافة عناصر بسيطة مثل الديود .
2- الطريقة الثانية بإضافة متكاملة صغيرة مشهورة خاصة للساعة تعمل ببطارية أمان 3 فولت.
متابعة لما سبق:
لكن إذا كان المطلوب فقط الحفاظ على قيم متغيرات حساب الزمن ولا يهمك متابعة الزمن الحقيقي كما يبدو من ردك أخي الكريم ، ممكن ببساطة وبدون إضافة اية بطارية برمجة ذاكرة البيك الداخلية eeprom بحيث تحتفظ هذه الذاكرة بآخر قيم بعد فصل الجهاز ( وبالاخص البيك Pic18F4580 ) عن التيار.
إذا كان المطلوب وكما يبدو من ردك فقط الحفاظ على قيم متغيرات حساب الزمن عند انقطاع التيار ، ولا يهمك متابعة الزمن الحقيقي ، ممكن ببساطة برمجة ذاكرة البيك الداخلية eeprom بحيث تحتفظ هذه الذاكرة بآخر قيم بعد فصل الجهاز ( وبالاخص البيك Pic18F4580 ) عن التيار.
وختاما رغم أن استخدام ديلاي ممكن لكن الأفضل عمل هذا الجزء الذي تريد إضافته (يعني المؤقت) داخل دالة مقاطعة التايمر 0 أو التايمر 1 ..
لان دالة مقاطعة التايمر ستعمل في الخلف ولا تعطل برنامج الجهاز الرئيس..
استخدام مقاطعة التايمر أصبح بسيطا منذ فترة في الميكروسي بواسطة هذه الأدوات ومثيلاتها :
http://www.qariya.info/vb/showthread.php?t=146417


moha-affa
:: مهندس ::
تاريخ التسجيل: May 2015
المشاركات: 14
نشاط [ moha-affa ]
قوة السمعة:
قديم 16-05-2015, 09:15 AM المشاركة 15   
افتراضي


أظن أخي العزيز ان اجابتك الاخيرة هي تماما ما ابحث عنه ...
شكرا جزيلا وجزاكم الله خيرا ..

تحياتي ومحبتي


moha-affa
:: مهندس ::
تاريخ التسجيل: May 2015
المشاركات: 14
نشاط [ moha-affa ]
قوة السمعة:
قديم 16-05-2015, 10:49 AM المشاركة 16   
افتراضي


ولكن عم تواجهني مشكلة باعداد بتات الTIMER0 CONTROL REGISTER عم يعطيني اخطاء انها متحولات غير معرفة



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