مرحله بندی در برنامه نویسی

مرحله بندی در برنامه نویسی

مواره باید بکوشیم تا راه حل های ساده تر و مفیدتری برای پیاده سازی برنامه پیدا کنیم.

در برخی از پروژه ها، کاربران با سیستم هایی مواجه می شوند که سلسله اعمالی ( Sequential ) را بایستی پشت سر هم انجام دهند.

در این مواقع شاید استفاده از فلگ ها و بیت هایی که با هم AND و OR شده و بخواهند شرط ایجاد یک پروسه را احراز کنند، موثر نباشد.
یکی از ساده ترین و در عین حال جالب ترین نوع برنامه نویسی که همان State Machine می باشد این است که متغیری به نام State ایجاد کنیم و با استفاده از آن تابعی را که به State مشخص مربوط است صدا بزنیم و پس از اجرای آن تابع، State را به شماره دیگری ارجاع دهیم.
در این نوع برنامه نویسی کاربر به راحتی می تواند کنترل مراحل را بر عهده گیرد و بالاخص در استفاده از زمان بندی، مدیریت بهتری داشته باشد.
در مثال ذیل نمونه بارز این نوع برنامه نویسی را نشان داده ایم. در این مثال که چراغ راهنمایی است، از یک تایمر استفاده شده است. این برنامه نشان می دهد که در استفاده از State، تعداد توابع مورد لزوم نیز کمتر می شود.
توضیح برنامه:
همه چیز با زدن کلید Start از روی صفحه نمایش شروع می شود. قبل از آن State معادل “صفر” است.
در این زمان State به مقدار “یک” تغییر وضعیت داده و فلگ Timing هم که قرار است برنامه زمان سنجی را به موازات اجرا نماید “یک” می شود.
در این هنگام فانکشن State1 اجرا می شود.
با اجرای این تابع State هم یک واحد افزایش داده می شود.
در این مرحله کمی ریزه کاری به خرج داده شده است؛ بطوریکه در مراحل ۲ و ۴ و ۶ سیستم در حال زمانگیری می باشد و عملا هیچ تابعی فراخوانی نمی شود.
ولی پس از زمان سنجی یک واحد به مرحله فعلی افزوده می شود که خود نشانه تمام شدن آن مرحله است.
هر سه فانکشن State1 ,2,3 دارای ساختار یکسانی هستند و فقط وظیفه روشن و خاموش کردن LED ها و زماندهی به تایمر را بر عهده دارند.
با زدن کلید Stop، نشانگر مرحله ها به “صفر” تغییر وضعیت داده و فلگ Timing هم غیر فعال می شود.

مرحله بندی در برنامه نویسی

———————————————————————————————————————————————————–
** این برنامه با ویرایش ۲٫۴۵ و برای دستگاه PAC 7070 نوشته شده است.
** لطفا نظرات خود را در مورد این مثال به ایمیل شرکت (info@fararopaya.com) ارسال نمایید.
** در ضمن می توانید سوالات خود را در تالار گفتگو مطرح کنید.
فایلهای ضمیمه:
  1. برنامه نویسی مرحله ای