 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
08-06-2015, 03:45 AM
المشاركة 4
|
|
مخطط حالة الماكينة (الجهاز) State Machine :
مخطط حالة الماكينة (الجهاز) State Machine :
مخطط حالات الماكينة هو عبارة عن أبنية بسيطة تستخدم تستخدم لتنفيذ أنشطة متعددة ، عادة تكون فى تسلسل . الكثير من أنظمة الحياة الواقعية يقع ضمن هذه الفئة . على سبيل المثال ، تشغيل غسالة الملابس أو غسالة الأطباق يتم وصفها بسهولة من خلال مخطط بناء حالة الماكينة .
ولعل أبسط طريقة لتنفيذ بناء حالة الماكينة فى لغة السى هو استخدام عبارة switch-case . على سبيل المثال ، نظام مراقبة درجة الحرارة له ثلاث مهام ، تسمى Task 1, Task 2, Task 3 كما هو مبين فى الشكل التالى :

قطعة الكود التالية تبين طريقة تنفيذ حالة الماكينة للثلاث مهام باستخدام عبارة switch-case :

كود:
for(;;)
{
state = 1;
switch (state)
{
CASE 1:
implement TASK 1
state++;
break;
CASE 2:
implement TASK 2
state++;
break;
CASE 3:
implement TASK 3
state = 1;
break;
}
Delay_ms(n);
}
حالة البدء هى الحالة “1” ، وكل مهمة تقوم بزيادة رقم الحالة بواحد لاختيار الحالة التالية التى سوف يتم تنفيذها . الحالة الأخيرة تختار الحالة “1” ، وهناك تأخير عند نهاية عبارة switch-case . يتم تنفيذ بناء حالة الماكينة بشكل مستمر داخل حلقة for ، لانهاية لها .
فى العديد من التطبيقات ، قد لا نحتاج تنفيذ الحالات فى تسلسل . لذلك ، بدلا من ذلك يتم اختيار الحالة التالية بواسطة الحالة الحالية إما مباشرة أو بناء على شرط ما ، كما هو مبين فيما يلى :

كود:
for(;;)
{
state = 1;
switch (state)
{
CASE 1:
implement TASK 1
state = 2;
break;
CASE 2:
implement TASK 2
state = 3;
break;
CASE 3:
implement TASK 3
state = 1;
break;
}
Delay_ms(n);
}
على الرغم من أن مخطط حالة الماكينة سهل التنفيذ إلا أنه بدائى واستخدامه محدود . فهو يمكن أن يستخدم فقط فى الأنظمة التى لا تستجيب فعليا ، وحيث أنشطة المهام معرفة جيدا ولم يتم تحيد أولويات المهام .
علاوة على ذلك ، بعض المهام قد تكون أكثر أهمية من غيرها . وقد نرغب فى تشغيل بعض المهام كلما تصبح مؤهلة (مطلوبة) . على سبيل المثال ، فى عملية تصتيع ، المهمة التى تقوم بتشغيل الإنذار عندما تكون درجة الحرارة مرتفعة جدا . هذا النوع من التنفيذ يتطلب نظام متطور مثل نظام تشغيل الزمن الحقيقى RTOS .
نظام تشغيل الزمن الحقيقى (الفعلى) RTOS :
|