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

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

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,524
نشاط [ wleed antar ]
قوة السمعة:146
قديم 02-09-2009, 08:51 AM المشاركة 1   
Question برجاء توضيح طريقة استخدام التعليمة sleep ؟ Twitter FaceBook Google+



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

برجاء توضيح طريقة استخدام التعليمة sleep والخروج منها
وجزاكم الله خيرا وكل عام أنتم بخير


التعديل الأخير تم بواسطة : wleed antar بتاريخ 11-09-2009 الساعة 04:33 PM
اعلانات

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,524
نشاط [ wleed antar ]
قوة السمعة:146
قديم 06-09-2009, 08:57 AM المشاركة 2   
افتراضي


منتظر الرد







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

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 06-09-2009, 06:59 PM المشاركة 3   
افتراضي


أخي المهندس وليد .. آسف جدا على التأخر .

أمر sleep هو أمر من أوامر لغة الأسمبلي .

فإذا كنت تستخدم لغة الأسمبلي فستكتبه كما هو
كود:
sleep
أما إذا كنت تستخدم لغة مايكروسي mikroC فإنك ستكتبه بهذا الشكل :
كود:
asm{ sleep }
أما إذا كنت تستخدم مايكروبيسك mikroBasic فإنك ستكتب الأمر بالشكل التالي :
كود:
asm sleep end asm
عندما تريد استخدام الأمر sleep فإنه يجب عليك أولا ضبط المسجل Option_Reg .

وهذا الضبط هو الذي سيحدد المدة التي سيستغرقها الأمر sleep . بعد هذه المدة يستيقذ الميكروكنترولر تلقائيا .

أرجو أن توضح أسئلتك أكثر فربما لم أفهمك جيدا . . تمنياتي لك بكل التوفيق مهندسنا الكريم .

============================


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 06-09-2009 الساعة 07:04 PM

الصورة الرمزية SAMI-ALG
SAMI-ALG
:: مهندس جيد ::
تاريخ التسجيل: Jul 2009
الدولة: الجزائر
المشاركات: 199
نشاط [ SAMI-ALG ]
قوة السمعة:0
قديم 07-09-2009, 02:08 AM المشاركة 4   
افتراضي


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

- اولا الاصية تسمى ب sleep mode او power down ينادى عليه في البرنامج عن طريق التعليمة sleep . حيث انه متى دخل البيك في هذه الحالة فانه يتوقف عن تطبيق الاوامر التي تاتي بعده وويقوم البيك بما يلي

-الwatch dog يعود الى العد من الصفر + مثل خاصية clrwdt

- البيت T0 الموجود في STATUS يتحول الى 1

-البيت PD الموجود ايضا في STATUS يتحول الى 0

- ال L’oscillateur يتوقف عن العمل اي ان البيك لا يطبق اي امر

وفي هذه الحالة نسبة الطاقة المستهلكة من البيك تقل الى حدها الادنى

بما ناه وكما تم ذكره سابقا ان الهزاز يتوقف عن العمل فان التايمر0 يصبح بلا معنى اي ان المقاطعة عنده تتوقف ويبقى فقط ال WATCHDOG حيث انه يمتلك عداد خاص به

ولهذا المود SLEEP له اهمية خاصة في توفيير الطاقة عند استخدام البطاريات كما انه مفيد جدا في الاستخدامات اين لا يكون عندك الا تاست واحد مثلا ويكون هذا التاست ذا مجال زمني طويل ++ مراقبة مستوى الماء في خزان مثلا ++ وبهذا يمكنك ان تدخل البيك في هذه الحالة افضل من ان يقوم بعمل الملايين من التاست

وللخروج من ال MODE SLEEP فهو عن طريق الاتي

- تطبيق 0 على MCLR اي عمل RESET للبرنامج

- انتهاء العد على ال WATCHDOG و كملاحظة بسيطة لا تنسى اشعاله من ال CONFIG اقصد الواتش دوق

- حدوث مقاطعة على RB0,RBI,EEPROM

و كتنبيه ايضا يجب ان يكون البيت الذي يوقظ البيك في حالت اشتغال اما GIE فهو غير مهم لان

ايقاظ البيك و GIE غير مشتغل GIE=0 هذا يعني ان البيك يستيقظ ويقوم بالامر الذي بعد الامر SLEEP

اما ايقاظ البيك و GIE فيحالة اشتغال GIE=1 يعني اسيقاظ البيك وتطبيق الاوامر الموجودة بالعنوان 0X04

++حالة ادخال البيك في MODE SLEEP مستحيلة ++

اذا كان GIE=1 ويكون مثلا احد المقاطعات مشغلا مع العلم او FLAG الخاص به مثلا

INTE=INTF=1 في هذه الحالة يقوم البيك بالغاء MODE SLEEP ولا يمكن الدخول اليه ابدا



هذا باختصار كل ما اعرفه عن هذا المود اي انه وضع لسبب رئيسي و هو توفير ما يمكن من الطاقة وان شاء الله اكون قد افدت ولو قليلا ومن لديه اي معلومات اضافية فاكون له شاكرا لو تفضل وطرحها علينا

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


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,524
نشاط [ wleed antar ]
قوة السمعة:146
قديم 07-09-2009, 08:52 AM المشاركة 5   
Post


أخوانى الكرام المهندس أحمد سمير والمهندس سامى شكرا لكما على حسن تعاونكما واهتمامكما لكن كما تعرفون أن هناك من التعليمات لا نحتاج لها ولكن قد يأتى وقتها فجأة بضرورة ملحَة فأنا لم أكن إحتجت من قبل لهذه التعليمة من قبل وعندما احتجتها وكنت تقريبا متوقف عليها بصورة كبيرة واستعنت بالله وأخذت بالأسباب توصلت بفضل الله أمس بعد اجراء بعض المحاولات والتجارب بعدما رفعت المشاركة الأخيرة توصلت للآتى :

طلبى كان كيفية وضع المتحكم عند مرحلة محددة من سير البرنامج فى وضع يسمح له باستهلاك أقل قيمة للتيار ( وضع سكون ) حيث يمكن عن طريق توصيل مفتاح button على طرف من أطرافة فيعمل على إخراج المتحكم من حالة السكون ، أنا أستخدم لغة المايكرو بيزيك فقمت بعمل برنامج فرعى ووضعت فى السجل intcon القيمة 10000% ثم وضعت عند موضع معين من البرنامج التعليمة sleep حتى يتم وضع المتحكم فى حالة الإستعداد وقمت فى بداية البرنامج بجعل طرف RB0 فقط طرف دخل فأصبح كلما تأتى عليه نبضة موجبة يخرج المتحكم من حالة ال استعداد ويبدأ من التعليمة التى تلى sleep مباشرة ووجدت أن المتحكم pic16f877a يقوم بسحب 6 ميللى أمبير فى وضع الإستعداد

والحمد لله وافت هذه التجربة بالغرض ، وأحب أن أشير إلى أن الكثير من أعضاء هذه القرية والمشرفين ذو خلق طيب ولكن التأخير فى الرد يرجع لأسباب عديدة وكفى أننا أوشكنا على العشر الأواخر لهذا الشهر المبارك والكل منشغل وعنده مايكفيه من مشاغل ولأنى كما كنت مثلكم فى حاجة أخوانى فى المنتدى فكان الله فى حاجتى ووفقنى لهذا الحل الأخير عندما كنت مستعجل عليه ! والحمد لله

هل هناك أى ملحوظات للتعليمات التى استخدمتها لهذا الغرض ؟ وهل 6 مللى أمبير عند وضع المتحكم فى حالة الإستعداد sleep مضبوطة ؟

شكرا لكم جميعا وبارك الله لكم وبالتوفيق


التعديل الأخير تم بواسطة : wleed antar بتاريخ 07-09-2009 الساعة 09:07 AM

الصورة الرمزية SAMI-ALG
SAMI-ALG
:: مهندس جيد ::
تاريخ التسجيل: Jul 2009
الدولة: الجزائر
المشاركات: 199
نشاط [ SAMI-ALG ]
قوة السمعة:0
قديم 07-09-2009, 09:58 AM المشاركة 6   
افتراضي


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

ما قلته سابقا كنت اقصد به البيك 16f84 اما بخصوص pic16f87x فهو لا يختلف عن f84 من الناحية العملية لهذه التعليمة فقط له تعليمات اخرى لايقاظ البيك هي كالتالي

- الكتابة او القراءة ب الموديل psp

- عن طريق التايمر واحد في حالة عداد تزامني asynchrone

- module CCP1 en mode capture (CCP1IF / CCP1IE

-Module CCP2 en mode capture (CCP2IF / CCP2IE

- بدء او توقف الموديل MSSP في حالة I2C

- انتهاء عملية التواصل من اجل الموديل MSSP في حالة SLAVE من اجل I2c او SPI

- انتهاء عملية الارسال من اجل الموديل MSSP في حالة Slave

- ارسال او استقبال عبر الموديل USART في حالة SLAVE تزامني

- انتهاء عملية التحويل A/N

- نهاية الكتابة في EEprom

هذا واما ما يخص هل ال 6 ميلي مضبوطة او لا فالله اعلم وفي انتظار من يفيدنا بمعلومة عنها ان شاء الله

** ملاحظة بسيطة : قد تكون بعض الكلمات غير مفهومة لاني دارس على البيك باللغة الفرنسية ووجدت بعض الصعوبة في تحويلها الى مفردات عربية ^_^...

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

إضافة رد

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

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

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


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

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