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

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

waeltealeb
:: مهندس متميز ::
تاريخ التسجيل: Jul 2007
المشاركات: 366
نشاط [ waeltealeb ]
قوة السمعة:0
قديم 03-04-2012, 09:36 AM المشاركة 1   
افتراضي طريقة مقاطعة البرنامج .. ارجوا المساعده فى برمجة البيك 16f877a Twitter FaceBook Google+



ارجوا المساعده فى برمجة البيك 16f877a>>>> حيث اننى ادخلت عليه برنامج لجهاز انذار ، وأريد مقاطعة عمل البرنامج فى مرحله معينه ،،، هل يوجد امر لذلك .... بمعنى اننى استخدمت برنامج بطريقة الloop و go to loop ،، و كما تعلمون ان البيك فى هذه الطريقه يفعل الأوامر بالترتيب تباعا حسب البرنامج ، وانا اريد فى مرحله معينه من تنفيذ امر معين ، ان أقاطعه و أوقف البرنامج .....هل يمكن ذلك ؟

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 03-04-2012, 10:59 AM المشاركة 2   
افتراضي


ارجوا المساعده فى برمجة البيك 16f877a>>>> حيث اننى ادخلت عليه برنامج لجهاز انذار ، وأريد مقاطعة عمل البرنامج فى مرحله معينه ،،، هل يوجد امر لذلك .... بمعنى اننى استخدمت برنامج بطريقة الloop و go to loop ،، و كما تعلمون ان البيك فى هذه الطريقه يفعل الأوامر بالترتيب تباعا حسب البرنامج ، وانا اريد فى مرحله معينه من تنفيذ امر معين ، ان أقاطعه و أوقف البرنامج .....هل يمكن ذلك ؟


أخى الكريم

شكرا جزيلا لك

طريقة الخروج (كسر) من حلقة هى استخدام تعليمة Break وإليك ما جاء فى الميكروسى برو





Break Statement

Sometimes it is necessary to stop the loop within its body. Use the break statement within loops to pass control to the first statement following the innermost switch, for, while, or do block.
Break is commonly used in the switch statements to stop its execution upon the first positive match. For example:

كود:
 
switch (state) {
case 0: Lo(); break; case 1: Mid(); break; }
مع تمنياتى بدوام التوفيق

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

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


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


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


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


أخى الكريم

فى هذه النقطة لا يختلف لبميكروسى عن الميكرو سى برو .

إليك جزء منقول من دروس الميكروسى الخاص بهذه التعليمة :


1- عبارة break وعبارة continue

عبارة Break
أحيانا يكون من الضرورى إيقاف (إنهاء) الحلقة من داخل جسمها . تستخدم عبارة break داخل الحلقات لنقل التحكم لأول عبارة تلى حلقة العبارات التالية switch, for, while, do . أى أن عبارة breakتستخدم فى الإيقاف الفورى (القطع) لأى حلقة . أثناء تنفيذ الحلقة أن وجد هذا الأمر يتم الخروج الفورى منها .


كود:
مثال :
void main () { int a = 0; do { a ++; // تنفيذ تزايد المتغير بواحد break; // إيقاف تنفيذ الحلقة فورا والخروج منها PORTB = ~ PORTB; // عدم تنفيذ عكس حالة أطراف المنفذ } while (a <100); }

ملحوظة :
عبارة break صالحة للاستخدام مع كل من : do-while و while و for و case .

عبارة Continue
عبارة continue تستخدم , من داخل الحلقات , فى "تخطى الدورة" . حيث أن تعمل على تحويل التحكم إلى نهاية الحلقة حيت تتكرر إذا كان الشرط صواب كما هو موضح بالأمثلة التالية :

كود:
while (..) {...if (val>0) continue;...// continue jumps here}
 
do {...if (val>0) continue;...// continue jumps here}while (..);
 
 
 
for (..;..;..) {...if (val>0) continue;...// continue jumps here}
بعبارة أخرى تقوم عبارة continue بإعادة بدء restarts اختبار شرط الحلقة مرة ثانية . فى كل مرة يوجد فى الحلقة الأمر continue لا يتم تنفيذ الأوامر التى تليها .

مثال :

كود:
 
void main () {
int a = 0;
 
do
{
a ++;                                       
continues;                   // العودة إلى بداية الحلقة
PORTD = ~ PORTD;  
}
while (a <100); 
}
 
 
فى هذا المثال : سوف , لن يتم تنفيذ الأوامر الموجودة أسفل الأمر continue لأنه فى كل مرة نصل فيها إلى تنفيذ الأمر continue يتم توجيه البرنامج تلقائيا إلى رأس الحلقة غير معتمدا على أى حالة للمتغيرات .
عبارة continueصالحة للاستخدام مع كل من : do-while و while و for و case .


waeltealeb
:: مهندس متميز ::
تاريخ التسجيل: Jul 2007
المشاركات: 366
نشاط [ waeltealeb ]
قوة السمعة:0
قديم 04-04-2012, 12:52 PM المشاركة 5   
افتراضي


الف شكر لكم اهل الخير كله


الصورة الرمزية عريبى محمود
عريبى محمود
:: ( رحمه الله عليه ) ::
تاريخ التسجيل: Jan 2009
الدولة: لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
المشاركات: 3,139
نشاط [ عريبى محمود ]
قوة السمعة:187
قديم 05-04-2012, 11:38 PM المشاركة 6   
angry جهد مشكور



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

شكرا مهندسنا الغالى فتح الله عبد العزيز

حهد مشكور ورائع
جعله الله فى ميزان حسناتك ......................اميييييييييييييين

إضافة رد

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

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

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


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

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