نوشتن چند فایلی در برنامه نویسی میکروکنترلر (Keil v5)

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

۱-اضافه کردن فایل های متعدد در Keil5

ابتدا محلی که میخواهیم فایل های جدید را قرار دهیم در فولدر پروژه یا زیر فولدر های آن تعیین می کنیم و اگر فایل های آماده ای را می خواهیم به پروژه اضافه کنیم، فایل ها را در آنجا می گذاریم. شخصا در فولدر src چندین زیرپوشه می سازم. سپس آن فولدر را به عنوان Path پروژه اضافه می کنیم تا در فرایند کامپایل این فایل ها نیز بررسی شوند. لازم به ذکر است که این مراحل برای اضافه کردن یک کتابخانه آماده نیز صادق است. همچنین توجه کنید که ثبت شدن یک فولدر به عنوان Path به معنی ثبت شدن زیرفولدر هایش نیست. برای این کار بصورت زیر عمل می کنیم:

Project -> Options for Target ‘your project name’

تصویر Options

سپس در قسمت Include Paths بر روی سه نقطه کلیک می کنیم و در آنجا با زدن به روی آیکونی که در شکل زیر مشخص کردم فولدر مورد نظر را اضافه می کنیم:

اضافه کردن 3

نکته: چیزی که باید در اینجا دقت کرد اگر شما فایلی را باز کرده باشید در اینصورت در قسمت Project، آپشن برای آن فایل بخصوص می آید، پس به عبارت نام پروژه خود دقت کنید. (با کلیک بر روی نام پروژه در قسمت Project در قسمت چپ این موضوع حل می شود.)

سپس فایل هایی که میخواهید ایجاد کنید یا بصورت آماده اضافه کنید را با استفاده از قسمت چپ برنامه(یعنی قسمت Project) که برای مدیریت فایل های پروژه هست اقدام کنید. من به شخصه در گروه Application/User اضافه می کنم یا اینکه یک گروه جدید میسازم. همچنین لازم نیست فایل های .h را اضافه کنید و آن ها بصورت اتوماتیک مورد استفاده قرار می گیرند.

اضافه کردن فایل2

۲- اضافه کردن ifndef# در فایل .h

اگر لازم باشد تا اینکه یک فایل .h را در چند جا include کنیم، با خطا زمان کامپایل مواجه خواهیم شد. برای جلوگیری از این موضوع در هدرفایل ها چینین ساختاری را پیاده سازی می کنیم:

#ifndef HEADER
#define HEADER

  //your
  //code
  //here
#endif

با این کار بعد از اوین بار include شدن و کامپایل شدن این هدرفایل دیگر شرط if صادق نبوده و دوباره این فایل .h کامپایل نمی شود.

همچنین دقت شود که برای نام HEADER در هدرفایل های مختلف باید نام های مختلف انتخاب شود چون وقتی مثلا نام HEADER یکبار تعریف شود در کل هم این عبارت تعریف شده می ماند و برای فایل دیگر که آن هم شرطش با عبارت HEADER است هیچگاه شرط صادق نمی شود، پس خطا رخ می دهد.

 

ادامه دارد….

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *