چرا Atmel studio؟
تا قبلاز آشناییبا Atmel studio از کدویژن برای برنامهنویسی و پیادهسازی پروژه با AVR استفاده میکردم که تا مدتها نیز ادامه داشت و پروژههای نسبتاً بزرگی را با آن نوشتم؛ اما در یکیاز پروژهها با باگی مواجه شدم که باعث بروز اتفاقات جبرانناپذیری در اجرای پروژه شد. بعداز بررسیهای فراوان متوجهشدم که باگ موردنظر (که در یک فرصت مناسب، در مورد آن توضیح خواهم داد) بهدلیل ضعف کدویژن و یا استفادهاز نسخه Crack شدهی آن بودهاست. همین مسئله باعث شد عزم خود را جزم کرده و از کدویژن کوچ کنم. سوییچ کردن به یک کامپایلر و ویرایشگر دیگر شاید کمی زمانبر بود ولی مطمئناً ارزش وقتگذاشتن را داشت. بهترین گزینه ازنظرمن Atmel studio یا Avr studio است که محصولی رایگان از شرکت Atmel میباشد و با کامپایلر اپن سورس GNU کار میکند. قبلاً مقایسه تخصصی کامپایلر GCC را با نرمافزار Codevision انجام دادهایم و میتوانید جزئیات آن را در پست “کامپایلر CodevisionAVR در مقابل کامپایلر GCC و مقایسه تخصصی آنها” مطالعه کنید. از مزیتهای این برنامه رایگان بودن آن است و همچنین بهدلیل اینکه توسط شرکت سازنده میکروکنترولر AVR ایجاد شدهاست، سازگاری کاملی با این میکرو و پردازندههای ARM دارد. در این مقاله نحوه ایجاد یک پروژه ساده بااستفادهاز Atmel studio را آموزش خواهیمداد؛ پس با ما همراه باشید. (فرض بر این است که شما با زبان C و برنامه Codevision آشنایی دارید.)
نصب برنامه Atmel Studio
اولین مرحله دانلود برنامه است که بااستفادهاز این لینک میتوانید آخرین ورژن نرمافزار Atmel Studio را دانلود کنید. با انتخاب گزینه Atmel Studio 7.0 (build 1645) web installer recommended برنامه installer را دانلود میکنیم.
متاسفانه بهدلیل تحریمهای موجود دانلود مستقیم این نرمافزار در داخل کشور مقدور نیست که البته میتوانید این نرمافزار را از سایتهای داخلی نیز دانلود کنید.
با اجرای فایل نصب دانلودشده، عملیات نصب را آغاز میشود. درحین نصب بهصورت خودکار عملیات دانلود atmel studio نیز انجام خواهدشد. مدتزمان نصب بهدلیل حجم بالای برنامه کمی طولانی است که به سرعت اینترنت شما هم بستگی دارد. حجم فایل نصب حدود ۹۰۰ مگابایت است.
شروعکار با Atmel Studio و ایجاد برنامه جدید
پساز کاملشدن نصب و اجرای برنامه، در صفحه شروع یا Start Page جهت ایجاد پروژه جدید گزینه new project را انتخاب میکنیم:
در پنجره بازشده، از ستون وسط صفحه، گزینه چهارم را انتخاب میکنیم. در قسمت Name نیز نام پروژه را وارد میکنیم. در صورت زدن تیک Create directory for solution پوشه جداگانهای برای فایلهای پروژه ایجاد میگردد:
با زدن دکمه OK وارد پنجره Device Selection شده و مدل میکروکنترلر موردنظر را انتخاب میکنیم. در این مقاله جهت سهولت کار، ما از برد آماده Arduino Nano استفاده خواهیم کرد. همانطورکه میدانید برد آردوینو نانو بر پایه چیپ Atmega328p ساختهو تولید شدهاست. بههمیندلیل ما نیز میکروکنترلر ATmega328p را انتخاب میکنیم. در سمت راست این صفحه دیتاشیت و پروگرامرهایی که از این مدل میکروکنترلر پشتیبانی میکنند را میتوان مشاهدهکرد:
با زدن دکمه OK پروژه ایجاد شده و وارد پنجره زیر میشویم:
به بخش جذاب مقاله میرسیم: کدنویسی بااستفادهاز atmel Studio و برنامهریزی میکروکنترلر بااستفاده از آن. در اینبرنامه قصد داریم led متصلبه پایه پنجم از پورت B، که در برد آردوینو نانو پایه D13 است، هر نیم ثانیه یکبار چشمک بزند. این Led با حرف L برروی برد مشخص شدهاست.
باتوجهبه اینکه فرکانس نوسانساز برد موردنظر ۱۶ مگاهرتز است، باید بهنحوی کامپایلر را متوجه این مهم کنیم؛ درغیر اینصورت زمانبندیهای ایجادشده درستو دقیق نخواهدبود. برای اینکار بهسادگی بااستفادهاز دستور پیش پردازنده (define F_CPU 16000000UL#) فرکانس کاری پردازنده را به کامپایلر اعلام و بعداز آن Header مربوطبه ایجاد تأخیر را در خط ۶ اضافه میکنیم. از خطوط ۱۰ و ۱۱ داخل تابع main جهت تعیین ورودی یا خروجی بودن پین۵ استفاده میکنیم که در اینجا پایه موردنظر را بهصورت خروجی (خط ۱۱ برنامه) درنظرمیگیریم. خط ۱۰ نیز تأثیری در اجرای برنامه ندارد. در خط ۱۵ در داخل حلقه while، با هربار تکرار حلقه ارزش بیت POTRB5 مخالف مقدار قبلی آن میشود (عملیات xor منطقی). خط ۱۶ نیز ۵۰۰ میلیثانیه تأخیر ایجاد میکند.
#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 را انتخابکنید:
نحوه پروگرام برنامههای نوشتهشده با Atmel Studio با استفاده از برد Arduino Nano
اگر تاکنون برد Nano را با کابل USB به کامپیوتر خود متصل نکردهاید، باید باتوجهبه نوع آیسی USB برد آردوینو که از دو مدل CH340 یا FT232RL است، Driver برد را برای ویندوز خود نصبکنید.
آموزش نصب Driver برد Arduino Nano را میتوانید در این سایت مشاهده کنید. پساز نصب Driver پروگرامر، باید این برد را بهعنوان پروگرامر به Atmel Studio معرفیکنید. درصورتیکه برنامه Arduino قبلاً برروی سیستم شما نصب شدهباشد، باید ابتدا مسیر قرارگیری برنامه avrdude.exe را که بهطور پیشفرض در پوشهی:
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe است را کپی کنیم.
به پنجره External Tools از منوی Tools برنامه Atmel Studio رفته و دکمه Add را جهت ایجاد پروگرامر زده و سپس در قسمت Command آدرس برنامه avrdude را قرار میدهیم:
در قسمت Title هم یک نام برای پروگرامر وارد میکنیم. فایل avrdude.conf را نیز از مسیرنصب برنامه Arduino جستوجو کرده و پساز کپیکردن فایل، آنرا در یک مسیر مشخص (مثلاً C:\avrdude) قرار میدهیم و در قسمت Argument نیز پارامتر زیر را وارد میکنیم:
-CC:\avrdude\avrdude.conf -v -patmega328p -carduino -PCOM8 -b57600 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
سپس کلید OK را میزنیم.
نحوه اضافهکردن پروگرامر به Atmel را نیز میتوانید از پست قرار دادهشده در سایت www.medium.com مطالعهکنید. اکنون کلید F7 را جهت کامپایل برنامه میزنیم. با انتخاب زیرمنوی Programm از منوی Tools پنجره زیر باز میشود:
با زدن کلید OK برنامه در میکروکنترولر، پروگرام میشود و Led روی برد نیمثانیه یکبار چشمک میزند.
منبع:سیسوگ