لینک کوتاه مطلب : https://hsgar.com/?p=6896

معرفی چند وظیفه ای به آردوینو | وبلاگ آردوینو

معرفی چند وظیفه ای به آردوینو

الساندرو رانلوچی2 آگوست 2022

با افزایش قابلیت‌های آردوینو و سایر بردهای میکروکنترلر، از جمله کلاک‌های سریع‌تر یا حتی چندین هسته، نیاز به انجام چندین کار به طور همزمان بیشتر از گذشته ایجاد می شود. به عنوان مثال، اغلب می خواهید موتورها را کنترل کنید، نمایشگر را به روز کنید و تعاملات کاربر را به طور همزمان تشخیص دهید، یا کارهایی را انجام دهید که زمان بندی متفاوتی دارند یا منتظر رویدادهای خارجی باشید.

روش سنتی برای انجام این کار این است که کد غیر مسدود کننده بنویسید به طوری که تابع حلقه () بتواند با بیشترین سرعت ممکن اجرا شود، متغیرهای حالت را به روز کند و تابع millis() را فراخوانی کند تا زمان بندی مناسب را تضمین کند. “بدون معطلی پلک بزن” مثال برای یادگیری بیشتر). اگرچه این رویکرد منجر به کدهای متورم می شود که اشکال زدایی و نگهداری آن سخت است و همچنین از چندین هسته پشتیبانی نمی کند.

را کتابخانه زمانبندی در حال حاضر اجازه می دهد تا کد را به روشی تمیزتر با تقسیم طرح در چندین توابع حلقه بنویسید، به طوری که هر کدام می توانند روی یک کار خاص تمرکز کنند. با این حال، این رویکرد، چندوظیفه ای مشارکتی نامیده می شود، به این معنی که شما هنوز باید خودتان از مسدود کردن دستورات خودداری کنید. همچنین، از چندین هسته پشتیبانی نمی‌کند و حتی اگر از شما پشتیبانی می‌کند، از دسترسی به متغیرهای مشابه از چندین رشته محافظت نمی‌کند. آخرین اما نه کم‌اهمیت، این مبتنی بر پارادایم سنتی «حلقه مشغول» است، که واقعاً برای برنامه‌های کم مصرف که می‌خواهید در هنگام انتظار برای یک رویداد یا داده‌های دریافتی، تا آنجا که ممکن است رشته‌ها استراحت کنند، کمکی نمی‌کند.

چگونه مالتی تسکینگ را به آردوینو اضافه کنیم؟

هدف این است که یک API استاندارد تعریف کنید که می تواند در تمام معماری ها منتقل شود و مطابق با فلسفه آردوینو، کارهای پیچیده را برای هر کسی آسان می کند. چندوظیفگی مفهوم سختی است، بنابراین در اینجا ما برای ارائه رویکرد آردوینو برای در دسترس قرار دادن آن برای همه، حاشیه های زیادی داریم.

ما از جامعه فنی خود می خواهیم که به بحث در GitHub بپیوندید، و ما پیشنهاد API خود را همراه با یک پیاده سازی کاملاً کارآمد نیز به اشتراک می گذاریم. نظرات خود را با ما در میان بگذارید و بیایید با هم کار کنیم تا این ویژگی جدید را نهایی کنیم!

این بحث جامعه در داخل میزبانی می شود مخزن کاملا جدید، که خانه جدید تکامل زبان آردوینو است.

شما می توانید هر پاسخی را که به این ورودی داده می شود از طریق فید RSS 2.0 دنبال کنید. تو می توانی یک پاسخ بگذارید، یا پیگیری از سایت خودتان.

لینک منبع

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.