آموزش AVR با کدویژن قسمت ۷ توابع

قبل از این که قسمت دوم آموزش ADC را قرار بدم اول باید با توابع آشنا بشیم تا بتونیم برای ADC یک زیر برنامه بنویسیم

هر برنامه به زبان C از یک تابع اصلی به نام main و چنیدین تابع دیگر تشکیل شده که در روند اجرای برنامه در داخل تابع main فراخوانی و استفاده می شوند. توابع یک زیر برنامه ای است که توسط کابر برای انجام عملیات خاصی نوشته می شود و مزیت اصلی آن کم  کردن کد های استفاده شده است . توابع کلا به دو نوع از پیش تعریف شده مانند sin … و توابعی که توسط کابر نوشته می شوند تعریف میشود

نحوه نوشتن تابع:

;(نوع و نام پارامتر های ورودی) نام تابع   نوع متغیر بازگشتی تابع

}

برنامه و مجموعه دستورات تابع

{

تابع قبل از اینکه نوشته شود باید قبل یا داخل تابع اصلی main تعریف شود . در صورتی که تابع مقداری را برنمی گرداند بجای نوع متغییر بازگشتی کلمه void را قرار می دهیم . در صورتی که بخواهیم تابع مقداری را برگرداند باید از دستور return استفاده کنیم . در صورتی که از void استفاده کرده باشیم دیگر نیاز به استفاده از void نداریم.

بجای توضیحات بیشتر که کمی گنگ هستند چند مثال میزنیم که مطالب واضح تر شوند:

همان طور که در بالا می بینید تابعی به نام zarb تعریف کردیم که نوع آن از نوع int می باشد. برای این تابع دو نوع ورودی از نوع int  با نام های a و b تعریف کردیم

از خط ۸ تا ۱۱ نیز دستورات داخل آن را نوشتیم . این تابع یک تابع ساده ای است که دو عدد ورودی خود را با هم ضرب کرده و مقدار آن را بر می گرداند

در خط ۵ نیز نحوه استفاده از آن را می بینید.

برنامه بالا را به صورت زیر هم می توان نوشت

 

مثالی دیگر یک تابع بدون مقدار بازگشتی و پارامتر ورودی

در  مثال بالا زیر برنامه ای به نام on_off نوشته شده که پورت a.0 را به مدت ۵۰۰ میلی ثانیه روشن سپس خاموش می کند. و در هر جایی از برنامه که به خواهیم این پایه را روشن و خاموش کنیم نام تابع را می نویسیم on_off()

حالا مثال بالا را کمی تغییر می دهیم تا بتوانیم مدت زمان روشن بودن پایه را هم از طریق ورودی تابع تعیین کنیم:

همان طور که مشاهده می کنید یک پارامتر ورودی  با نام delay و نوع int اضافه کردیم و در داخل برنامه تابع این پارامتر را به دستور delay_ms اعمال کردیم حال در هنگام استفاده از تابع در بین دو () یک عدد قرار می دهیم که این عدد به delay_ms اعمال شده و مدت زمان تاخیر روشن بودن پایه را مشخص می کند.

 

17 دیدگاه در “آموزش AVR با کدویژن قسمت ۷ توابع

  1. تشکر از وسعت آموزش که کلیه جنبه های کار با میکرو را پوشش می دهد. با آرزوی سلامتی برای شما

  2. از اینکه برای هر موضوع مثالی می آورید و روی مثال ها توضیح می دهید عالیه، با سپاس فراوان

  3. سلام
    اموزش هاتون عالیه
    میشه امیدوار باشیم ک درباره کانتر ، تایمر ، وقفه ، LCD ، 7-seg و …
    هم اینجور اموزشای مفیدتون رو بذارید
    ممنون از زحماتتون و سایت قشنگتون …

  4. اما من هنوز اینو متوجه شدم که چرا کد به این سادگی رو میزنم تو خود c اجرا میشه اما توی کد ویژن نمیشه!!!

    آیا به خاطر megaو iostream ؟

    این کد منه ( راستش من هیچ کلاسی نرفتم و تازه دارم یاد میگیرم خودم برای همین خیلی مشکل دارم. این اولین کده )
    #include
    #include

    int main()
    {
    int a ;

    cout<>a;
    cout<<a;
    getch();
    return 0 ;
    }

      1. سلام
        تو قسمت نظرات یکم مشکله کد نوشتن ،اگه میتونید کدتون رو یه جایی آپلود کنید لینکش رو اینجا قرار بدید تا چک کنم

  5. اقا یک دنیا ممنون همینو تو کتاب درسی طوری گفته بود که آدم گیج میشد .
    واقعا خیلی ممنون از سایت خوبتون

دیدگاهتان را بنویسید

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