5 لایک
-
برای این کار شما باید در حلقه setup اول تنظیمات وقفه رو توسط تابع زیر انجام دهید:
attachInterrupt(interrupt, ISR, mode)
یا
attachInterrupt(pin, ISR, mode)
در توابع بالا بجای ISR اسم تابعی رو مینویسید که موقع اتفاق افتادن وقفه خارجی باید فراخوانی و اجرا بشه، قسمت mode هم برای مشخص کردن نوع وقفه خارجی هست یعنی اینکه مثلا با لبه بالاروند باشه یا لبه پایین رونده یا تغییر وضعیت پایه و قفه و ...، پین یا interrupt هم شماره اینتراپت مورد نظرتون رو مینویسید مثلا وقفه خارجی 0، اینکه در هر برد کدام پایه مربوط به کدام وقفه هست رو میتونید از لینکی که بعد میدم نگاه کنید. بعد از نوشتن این تابع در بخش setup برنامه هر وقت وقفه رخ بده برنامه اون تابع که نامش رو در قسمت ISR نوشتید رو اجرا میکنه و بعد از تمام شدنش به برنامه باز میگرده. سعی کنید تابع ISR کوتاه و مختصر باشه که سریع اجرا بشه چرا که هنگام اتفاق افتادن یک وقفه با توجه به ساختار میکروهای AVR و نوع اولویت دهی که در آردوینو انجام شده به وقفه های دیگه رسیدگی نمیشه و همچنین بعضی از توابع مثل تاخیر میلی ثانیه یا دستورات میلی در تابع وقفه کار نمیکنند.
برای اطلاعات بشتر و دیدن نمونه کد به لینک زیر مراجعه کنید:
Arduino - AttachInterrupt
مجوز های ارسال و ویرایش
- شما نمیتوانید موضوع جدیدی ارسال کنید
- شما امکان ارسال پاسخ را ندارید
- شما نمیتوانید فایل پیوست کنید.
- شما نمیتوانید پست های خود را ویرایش کنید
-
مشاهده قوانین انجمن
SEO by vBSEO