آموزش atmel studio

saalek110

Well-Known Member

شروع کار با Atmel Studio و ایجاد برنامه جدید:​

در صفحه شروع یا Start Page جهت ایجاد پروژه جدید گزینه new project را انتخاب می‌کنیم:
در پنجره بازشده، از ستون وسط صفحه، گزینه چهارم را انتخاب می‌کنیم. در قسمت Name نیز نام پروژه را وارد می‌کنیم. در صورت زدن تیک Create directory for solution پوشه جداگانه‌ای برای فایل‌های پروژه ایجاد می‌گردد:


با زدن دکمه OK وارد پنجره Device Selection شده و مدل میکروکنترلر موردنظر را انتخاب می‌کنیم. در این مقاله جهت سهولت کار، ما از برد آماده Arduino Nano استفاده خواهیم کرد. همان‌طور که می‌دانید برد آردوینو نانو بر پایه چیپ Atmega328p ساخته و تولید شده است. به همین دلیل ما نیز میکروکنترلر ATmega328p را انتخاب می‌کنیم. در سمت راست این صفحه دیتاشیت و پروگرامرهایی که از این مدل میکروکنترلر پشتیبانی می‌کنند را می‌توان مشاهده کرد:

در این برنامه قصد داریم led متصل به پایه پنجم از پورت B، که در برد آردوینو نانو پایه D13 است، هر نیم ثانیه یک‌بار چشمک بزند. این Led با حرف L بر روی برد مشخص شده است.

با توجه به اینکه فرکانس نوسان‌ساز برد موردنظر 16 مگاهرتز است، باید به نحوی کامپایلر را متوجه این مهم کنیم؛ در غیر این صورت زمان‌بندی‌های ایجادشده درست و دقیق نخواهد بود. برای این کار به‌سادگی با استفاده از دستور پیش پردازنده (define F_CPU 16000000UL#) فرکانس کاری پردازنده را به کامپایلر اعلام و بعد از آن Header مربوط به ایجاد تأخیر را در خط 6 اضافه می‌کنیم. از خطوط 10 و 11 در داخل تابع main جهت تعیین ورودی یا خروجی بودن پین 5 استفاده می‌کنیم که در اینجا پایه موردنظر را به‌صورت خروجی (خط 11 برنامه) در نظر می‌گیریم. خط 10 نیز تأثیری در اجرای برنامه ندارد. در خط 15 در داخل حلقه while، با هر بار تکرار حلقه ارزش بیت POTRB5 مخالف مقدار قبلی آن می‌شود (عملیات xor منطقی). خط 16 نیز 500 میلی‌ثانیه تأخیر ایجاد می‌کند.

کد:
#ifndef F_CPU
#define F_CPU 16000000UL   // set oscillator  16Mhz
#endif

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
   DDRB &=~(1<<DDB5); //input pin ---> codevision: DDRB.5=0 or DDRB=0x00
   DDRB |=(1<<DDB5);  //output pin ---> codevision: DDRB.5=1    or    DDRB=0x10
    
    while (1)
    {
        PORTB ^= (1<<5);   //toggle pin  0/1
        _delay_ms(500);
    }
}

با انتخاب گزینه Build Solution از منوی Build و یا با فشردن کلید F7، برنامه کامپایل شده و فایل Hex آن در پوشه Debug پروژه ایجاد می‌گردد. پس از کامپایل در پایین صفحه در پنجره Output نتیجه کامپایل و اطلاعاتی نظیر حجم حافظه استفاده‌شده نمایش داده می‌شود. خطاها در پنجره Error List نمایش داده می‌شوند.

در صورتی‌که برای اولین بار برنامه را کامپایل کردید و پنجره زیر ظاهر شد، گزینه Simulator را انتخاب کنید:

 
آخرین ویرایش:

saalek110

Well-Known Member

فایل main پروژۀ ایجاد شده​

بعد از ساخت پروژه اتمل استودیو یک فایل به نام main را با پسوند cpp باز می کند که در واقع فایل اصلی برنامه است. در ابتدای آن چند سطر کامنت حاوی نام فایل cpp، زمان ساخت پروژه و نویسندۀ پروژه قرار دارد. در ادامه کتابخانۀ io.h فراخوانی شده است. برای نوشتن برنامه و راه اندازی واحد های مختلف، وجود این کتابخانه الزامی است. تابع اصلی برنامه نیز در ادامه نوشته شده است. برای این که برنامه بدون خطا کامپایل شود، تنها لازم است که تابع اصلی برنامه در این فایل وجود داشته باشد. بنابراین اگر حلقۀ while بی نهایت و سطر فراخوانی کتابخانۀ io.h را پاک کنیم، باز هم برنامه بدون خطا کامپایل می شود.

اکنون ساخت پروژه در Atmel Studio به پایان رسیده است. در ادامه برای نوشتن برنامه در آن نیاز است کتابخانه هایی فراخوانی شود. این کتابخانه ها ممکن است در مسیرهای مختلفی قرار داشته باشند. برای مثال در تصویر زیر می بینید که کتابخانۀ io.h در پوشۀ avr قرار دارد. برای فراخوانی کتابخانۀ delay باید مسیر پوشۀ util را آورد. یا برای فراخوانی کتابخانۀ interrupt.h باید همانند کتابخانۀ io.h، مسیر پوشۀ avr را به برنامه داد.

 

جدیدترین ارسال ها

بالا