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

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

waeltealeb
:: مهندس متميز ::
تاريخ التسجيل: Jul 2007
المشاركات: 366
نشاط [ waeltealeb ]
قوة السمعة:0
قديم 23-09-2012, 11:03 PM المشاركة 1   
افتراضي اتمنى ان يضع الأخوه الأعضاء فيديو عن شرح تفعيل WDT Twitter FaceBook Google+



السلام عليكم ورحمة الله وبركاته ،، اتمنى ان يقوم الأخوه الكرام ممن لديه المعرفه ان يضع فيديو يشرح فيه كيفية تفعيل خاصيه WATCH DOG TIMER بالتفصيل الملل ،، للبيك 16F877A بأستخدام برنامج ميكروسى ،، وما يلزم من تعديل الأعدادات و ما يجب ان نراعيه فى الكود اذا كنا نستخدم فى الكود خاصيه DELAY لأكثر من ثانيتين او ثلاثه .. ارجوا المساعده و جزاكم الله خيرا .

اعلانات

waeltealeb
:: مهندس متميز ::
تاريخ التسجيل: Jul 2007
المشاركات: 366
نشاط [ waeltealeb ]
قوة السمعة:0
قديم 25-09-2012, 10:34 PM المشاركة 2   
افتراضي


يا جماعه من فضلكم فعلا انا فى اشد الحاجه الى معرفة طريقة تفعيل مؤقت الحراسه WDT بالنسبه للبيك ،، ولكن يا ريت طريقة الشرح بالتفصيل ، او يكون فيديو.. وجزاكم الله خيرا

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

الصورة الرمزية عريبى محمود
عريبى محمود
:: ( رحمه الله عليه ) ::
تاريخ التسجيل: Jan 2009
الدولة: لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
المشاركات: 3,139
نشاط [ عريبى محمود ]
قوة السمعة:187
قديم 27-09-2012, 09:59 PM المشاركة 3   
x4 تفعيل الخيار


يا جماعه من فضلكم فعلا انا فى اشد الحاجه الى معرفة طريقة تفعيل مؤقت الحراسه WDT بالنسبه للبيك ،، ولكن يا ريت طريقة الشرح بالتفصيل ، او يكون فيديو.. وجزاكم الله خيرا
السلام عليكم ورحمة الله وبركاته
----------------------------------
اخى الكريم يتم تفعيل هذا الخيار قبل حرق البيك (الاعدادات ) اختيار enable
واليك رابط به شرح مبسط لشرح هذا الاختيار





http://www.dbaasco.com/vb/showthread.php?t=6557


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 27-09-2012, 10:29 PM المشاركة 4   
افتراضي


أخى الكريم

شكرا جزيلا لك

الآتى من موضوع سابق قديم أرجو أن يكون مفيدا لك :

مؤقت الحراسة (المراقبة) Watchdog Timer (WDT

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

ما هو مؤقت الحراسة ؟:
مؤقت الحراسة هو عداد بمذبذب حر بدائرة RC داخل شريحة الميكروكونترولر ولا يحتاج أى مكونات خارجية والذى يقوم بالعد بإستمرار (عند تمكينه) وإذا حدث به طفحان overflow فإنه يجبر الميكروكونترولر على التصفير reset .
هذا المذبذب منفصل عن مذبذب ساعة الميكروكونترولر(ساعة النظام) المتصل بالطرف OSC1/CLKIN وهذا يعنى أن مؤقت الحراسة سوف يعمل حتى لو توقف مذبذب ساعة النظام كما فى الحالة عند تنفيذ تعليمة النوم SLEEP .
فى الميكروكونترولر PIC16F84A (على سبيل المثال) يتم تمكين enabled مؤقت الحراسة بواسطة أحد خانات التهيئة . ومن ثم إما أن يعمل أو لا يعمل خلال فترة تشغيل الميكروكونترولر . بالطبع قد لا ترغب فى إستخدام مؤقت الحراسة .
يتم ذلك عند حرق (تحميل) البرنامج على الميكروكونترولر والأفضل وضع سطر فى البرنامج للتهيئة كما يلى :



هذا السطر لا يقوم فقط بفصل مؤقت الحراسة ( _WDT_OFF) ولكنه أيضا يحدد نوع المذبذب الداخلى (كريستال _XT_OSC) وأيضا فصل حماية شفرة البرنامج (ليسمح لك ببرمجة الجهاز مرة أخرى عند الرغبة ) ( _CP_OFF ) , كما أنه يؤدى إلى تفعيل التصفير عند بدأ توصيل القدرة ( _PWRTE_ON ) كما يمكن عدم تمكين مؤقت الحراسة من العمل disabled بجعل خانتة التهيئة WDTE بالقيمة المنطقية (0) .




الفترة الطبيعية لمؤقت الحراسة (بدون إستخدام معامل قسمة التردد prescaler ) هى 18 ms وتسمى "فترة انتهاء المهلة" time-out period .
فترة إنتهاء المهلة تتغير مع درجة الحرارة والجهد الموجب VDD ونوع الميكروكونترولر .
عند الرغبة فى زيادة فترة إنتهاء المهلة يتم إستخدام معامل القسمة للتردد prescaler بقيمة تصل الى 1:128 .
يتم تخصيص معامل القسمة لمؤقت الحراسة برمجيا عن طريق مسجل الخيارات OPTION_REG ومن ثم يمكن الحصول على فترة إنتهاء المهلة تصل الى 2.3 seconds .




تعليمة مسح مؤقت الحراسة CLRWDT وتعليمة النوم SLEEP تقومان بتصفير مؤقت الحراسة WDT ومعامل القسمة ( إذا كان مخصصا لمؤقت الحراسة) ليعمل بالطريقة المطلوبة .
الخانة (معكوس TO ) فى سجل الحالة STATUS يتم مسحها clearعند إنتهاء فترة مهلة مؤقت الحراسة





إستخدام مؤقت الحراسة يكون حسب رغبة المبرمج وعندئذ يجب التأكد من أنه خلال البرنامج يتم مسح مؤقت المراقبة WDT بصفة دورية بالتعليمة (clrwdt) .
فى العادة يتم ذلك كجزء من البرنامج فى حلقة غير منتهية وبحيث يتم تنفيذ البرنامج فى كل مرة فى فترة زمنية أقل من 18ms ( فترة مهلة وتأخير ) يظل خلالها مؤقت الحراسة غير فعال .
فإذا حدث خطأ ما وأنتهت هذه المهلة يقوم المؤقت عندئذ بعمل تصفير الجهاز .
التصفير نتيجة مؤقت الحراسة عامة خبر غير سار للنظام حيث بالطبع يدمر جميع قيم الضبط الحالى ويبدأ البرنامج من جديد . مع ذلك فهذا افضل من عدم التشغيل كليا .
لاحظ أن مؤقت الحراسة يترك دليل عمله خلفه ويكون ذلك من خلال الخانة TO بسجل الحالة STATUS .
من الممكن إختبار هذه الخانة عند بداية البرنامج وبالتالى نستطيع أن نفرق بين التصفير نتيجة بداية توصيل القدرة والتصفير نتيجة مؤقت الحراسة .

آلية (ميكانيزم) عمل التصفير بمؤقت الحراسة Watchdog Timer :

هذا النوع من التصفير موجود فى جميع أفراد عائلة الميكروكونترولر PIC , مؤقت الحراسة هو مؤقت مستقل ويعمل حرا بإستخدام مذبذب خاص داخلى بدائرة RC .
يستخدم مؤقت الحراسة فى وظيفتين :
الوظيفة الأولى : إجبار المعالج على عمل تصفير reset لنفسه إذا أصبح تنفيذ البرنامج غير مستقر .
الوظيفة الثانية : أجبار المعالج على النهوض أو الإستيقاظ من نظام الخمول أو النوم sleep دوريا.





عند إستخدام نظام "الحراسة" فإن المؤقت يتم تصفيره من خلال البرنامج باستخدام تعليمة تصفير مؤقت الحراسة (CLRWDT) .
إذا حدث لأى سبب عدم استقرار فى عمل الميكروكونترولر عندئذ لن تنفذ تعليمة تصفير مؤقت الحراسة (CLRWDT) فى الوقت المحدد (فترة انتهاء المهلة timeout) حيث يقوم مؤقت الحراسة بالعد الى نهايته ويبدأ من الصفر من جديد (تسمى حالة طفحان overflow) .
عند الوصول ألى هذه الحالة فإنه يتم إجبار الميكروكونترولر على البدء من حالة معروفة مرة اخرى.
لذلك فإن مكان التعليمة CLRWDT مهم حتى تكون مؤثرة .




يمكن إستخدام معامل قسمة التردد prescalar لتغيير الزمن الخاص بمؤقت الحراسة .
إذا كان الميكروكونترولر فى نظام النوم SLEEP فعند حدوث طفحان لمؤقت الحراسة يجبر الميكروكونترولر على الإستيقاظ واستمرار تنفيذ البرنامج من المكان بعد تعليمة النوم SLEEP .
يجب ملاحظة أنه عند استخدام نظام المذبذب الكريستال فإن مؤقت بدء المذبذب سوف يعطى تأخر للمذبذب حتى يستقر بعد الاستيقاظ .
بمجرد إستيقاظ الميكروكونترولر يقوم بتحديد ما إذا كان هناك تغيير فى الأحداث (مثل تغيير حالة المداخل والمخارج) ويقوم بتنفيذ الكود المناسب .
بعد ذلك يقوم الكود بإرسال الميكروكونترولر مرة أخرى إلى نظام النوم وتتكرر الدورة .
إستخدام مؤقت الحراسة بهذه الطريقة يوفر الطاقة لأن الميكروكونترولر يكون فى نظام النوم فى أغلب الأوقات
عند استخدام مؤقت الحراسة هناك بعض النقاط الهامة التى يجب أخذها فى الإعتبار عند تصميم البرنامج :
النقطة الاولى : هى أنه عند تمكين enabled مؤقت الحراسة فلا يمكن أبدا وقف عمله بالبرمجة . ويظل يعمل حتى إن كان الميكروكونترولر فى نظام النوم .
النقطة الثانية : مؤقت الحراسة يستخدم مذبذب RC داخلى خاص وبسيط وفترة تأخيره تختلف من جهاز إلى اخر وتعتمد على قيمة التغير فى جهد التغذية وفى درجة الحرارة لذالك يجب على المصمم أخذ هذه التغيرات فى الاعتبار .
النقطة الاخيرة : دائرة مؤقت الحراسة تسحب تيار إضافى عند تمكينها للعمل فيجب أخذ ذلك فى الاعتبار عن حساب التيار المطلوب للتطبيق .

مع تمنياتى بدوام التوفيق


radwa
:: مهندس ::
تاريخ التسجيل: Mar 2012
المشاركات: 15
نشاط [ radwa ]
قوة السمعة:0
قديم 15-12-2012, 09:11 PM المشاركة 5   
افتراضي


موضوع رائع

انا عاوزه استخدم sleep mode لاكثر من 2.3 ثانيه
ايه الحل ؟؟؟؟؟؟؟


masul
:: مهندس ::
تاريخ التسجيل: Jun 2006
الدولة: اليمن
المشاركات: 43
نشاط [ masul ]
قوة السمعة:0
قديم 18-12-2012, 02:25 PM المشاركة 6   
افتراضي


لست ادري بالضبط كيف يتم عمل ذلك التأخير لاكثر من 2.3 ثانية

ولكني اظن انه يمكن ذلك عن طريق عمل الامر
كود:
 asm clrwdt ;
في المكان المناسب من البرنامج !

وهذا المكان المناسب هو قبل ان يمضي على البرنامج زمن الطفحان overflow الذي مقداره 2.3 ثانية ،حتى لا يقوم كلب الحراسة wdt بعمل ريست او اعادة تشغيل (تصفير MCLR ) .

بما ان كلب الحراسة يقوم بالعد من الصفر الى 255 في زمن قدره 2.3 ثانية ثم يعود للعد من الصفر .. وهكذا باستمرار ، وهذه العوده للعد من الصفر تسمى طفحان overflow و...

لذلك نقوم بعمل قطع للهذا العد قبل ان يصل الى الرقم 255 اي قبل مضي زمن قدره2.3 ثانية ، ليبدا العد من جديد
وهذا القطع يتم عن طريق الامر السابق وهو
كود:
  asm clrwdt ;
طبعا هذا في لغة مايكروسي

يتم تكرار هذا الامر في اكثر من مكان في البرنامج وفي اي امر يتكرر اكثر من 2.3ثانية مثل داخل اللوب او بعد اوامر التاخير
(( لست متأكد من معلوماتي انما وضعتها ليتكرم احدهم بتصحيحها ))

هذا حسب ما فهمت والله اعلم


masul
:: مهندس ::
تاريخ التسجيل: Jun 2006
الدولة: اليمن
المشاركات: 43
نشاط [ masul ]
قوة السمعة:0
قديم 18-12-2012, 02:55 PM المشاركة 7   
افتراضي


اتمنى ممن فتح الله عليهم بعلم ان يتفضل علينا بعمل برنامج بسيط جداً او اثنين او ثلاثة لتوضيح عمل التعليمة sleep

بحيث تستجيب التعليمة لضغطة زر معين وتستمر كذلك حتى يتم الضغط على الزر للخروج من النوم

وكيف نجعله يعود للبرنامج من البداية او من آخر امر كان ينفذه

ويضاً برنامج صغير لما هو مناسب نحن لا نعرفه

ارجو ان يكون البرنامج بالغة سي

و ايضاً ارجو عدم التحويل لروابط اخرى .. لأني بحثت كثيرا وكل الروابط التي وجدتها إما لم افهمها او انها بلغه غير السي

ارجو من الله ان تتسع صدوركم ووقتكم لطلبي - انا متأكد انه طلب الكثيرين في الحاضر والمستقبل - جعله الله في ميزان حسناتكم

وشكرا لكم سلفاً


التعديل الأخير تم بواسطة : masul بتاريخ 18-12-2012 الساعة 03:12 PM

waeltealeb
:: مهندس متميز ::
تاريخ التسجيل: Jul 2007
المشاركات: 366
نشاط [ waeltealeb ]
قوة السمعة:0
قديم 25-12-2012, 11:35 AM المشاركة 8   
افتراضي


يا جماعه المشكله انى مش فاهم طريقة الوصول الى option reg لكى يتم تعديل المده الزمنيه ... كيف تكون الطريقه ؟؟

إضافة رد

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

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

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


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

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