AVR, پروژه, توصیه شده, معرفی, نرم افزار

چرا و چگونه از Atmel studio استفاده کنیم؟

sisoog_atmel_learn1

چرا 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 نیز انجام خواهد شد. مدت‌زمان نصب به دلیل حجم بالای برنامه کمی طولانی است که به سرعت اینترنت شما هم بستگی دارد. حجم فایل نصب حدود 900 مگابایت است.

فایل نصبی Atmel Studio

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

پس از کامل شدن نصب و اجرای برنامه، در صفحه شروع یا Start Page جهت ایجاد پروژه جدید گزینه new project را انتخاب می‌کنیم:

 

پنجره اصلی Atmel Studio

 

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

 

ساخت پروژه جدید در Atmel Studio

 

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

 

انتخاب میکروکنترلر در Atmel Studio

 

با زدن دکمه OK پروژه ایجاد شده و وارد پنجره زیر می‌شویم:

 

منوی کامپایل در Atmel Studio

 

به بخش جذاب مقاله می‌رسیم: کدنویسی با استفاده از atmel Studio و برنامه‌ریزی میکروکنترلر با استفاده از آن.

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

برد آردوینو نانو

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

در خط 15 در داخل حلقه while، با هر بار تکرار حلقه ارزش بیت POTRB5 مخالف مقدار قبلی آن می‌شود (عملیات xor منطقی). خط 16 نیز 500 میلی‌ثانیه تأخیر ایجاد می‌کند.

با انتخاب گزینه Build Solution از منوی Build و یا با فشردن کلید F7، برنامه کامپایل شده و فایل Hex آن در پوشه Debug پروژه ایجاد می‌گردد.

پس از کامپایل در پایین صفحه در پنجره Output نتیجه کامپایل و اطلاعاتی نظیر حجم حافظه استفاده‌شده نمایش داده می‌شود. خطاها در پنجره Error List نمایش داده می‌شوند.

نمایش اتمام کامپایل در Atmel Studio

 

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

 

پنجره نرم افزار Atmel Studio

 

نحوه پروگرام برنامه‌های نوشته‌شده با 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 است را کپی کنیم.

 

انتخاب AVR Dude

 

به پنجره External Tools از منوی Tools برنامه Atmel Studio رفته و دکمه Add را جهت ایجاد پروگرامر زده و سپس در قسمت Command آدرس برنامه avrdude را قرار می‌دهیم:

تنظیم پروگرامر در Atmel Studio

 

تنظیمات avrdude در نرم افزار Atmel Studio

در قسمت Title هم یک نام برای پروگرامر وارد می‌کنیم. فایل avrdude.conf را نیز از مسیر نصب برنامه Arduino جست‌وجو کرده و پس از کپی کردن فایل، آن را در یک مسیر مشخص (مثلاً  C:\avrdude) قرار می‌دهیم و در قسمت Argument نیز پارامتر زیر را وارد می‌کنیم:

سپس کلید OK را می‌زنیم.

نحوه اضافه کردن پروگرامر به Atmel را نیز می‌توانید از پست قرار داده‌شده در سایت www.medium.com مطالعه کنید.

 

اکنون کلید F7 را جهت کامپایل برنامه می‌زنیم. با انتخاب زیر منوی Programm از منوی Tools پنجره زیر باز می‌شود:

پروگرام میکروکنترلر در Atmel Studio

با زدن کلید OK برنامه در میکروکنترولر، پروگرام می‌شود و Led روی برد نیم ثانیه یک‌بار چشمک می‌زند.



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 
حامد عباسیان

درباره حامد عباسیان

زمینه تخصصی فعالیتم برنامه نویسی میکروکنترلر و طراحی مدارات میکروکنترلری هست.از علایقم کارکردن در زمینه اینترنت اشیاء و سیستم های ردیابی است که در این زمینه ها در حال فعالیت هستم

نوشته های مشابه

15 دیدگاه در “چرا و چگونه از Atmel studio استفاده کنیم؟

  1. Avatar محمود گفت:

    من خیلی دوست دارم از atmel studio استفاده کنم ولی هر چی می گردم منبع کاملی به زبان فارسی برای یاد گیری آن وجود نداره… همه در همین حد است.

    1. زئوس Zeus زئوس Zeus گفت:

      خوب واقعا شما دنبال چه چیزی بیشتر از این میگردید ؟
      اگر قبلا تجربه کار با کامپایلر های C رو داشته باشید این میشه مقدمه خوبی که بتونید ازش استفاده کنید !

  2. Avatar کمیل گفت:

    سلام و ممنون بابت سایت و زحماتتون برای ارتقای دانش ایران عزیز
    اما یک پیشنهاد: می‌تونید توی مطلبتون برای دور زدن تحریم‌ها لینک سایت https://shecan.ir رو هم قرار بدید که کاربراتون راحت بتونن از سایت‌هایی که مارو تحریم کردن استفاده کنن.
    ممنون

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم
      بله وقعا امکان خوبی رو فراهم کردند
      خودم یکی از استفاده کنندگان هستم
      امیداورم که ادامه داشته باشه این حرکت

  3. Avatar V گفت:

    atmel studio یکسری مزایا مث هوشمند بودن در کد نویسی و اصلاح و دیباگ داره(به خاطر استفاده از visual studio)
    ولی یکسری معایب هم هنگام کامپایل داره که مثلا من یکجا ازPORTB استفاده کرده بودم ولی در ابتدا DDRB نزده بودم که در کدویژن اررور میده ومشخص میشه ولی اتمل استدیو اینطور نیست و خیلی وقتمو گرفت این مسئله کوچیک

    1. زئوس Zeus زئوس Zeus گفت:

      کدویژن رو نمیدونم ایا چنین چیزی رو خطا میده یا نه ولی فکر نکنم خطا بده چون فرض کنید شما بخواید پایه ای رو پول آپ کنید وقتی ورودی هست ! اون موقع که خطا میده ؟
      ولی جالبه موضوع – تست میکنم

  4. Avatar v گفت:

    سلام
    واقعا خوبید
    آموزش اتمل استدیو باز هم ادامه بدید
    راستی Argument مشکل داشت
    من اینو جایگزین کردم و شماره پورت هم باید برا هر سیستمی باید ببینید چنده و عوض بشه
    -C “C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf” -p atmega328p -c arduino -P COM4 -b 115200 -U flash:w:”$(ProjectDir)Debug\$(TargetName).hex”:i

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      بله درسته حق با شماست ، پورت کام برای هر سیسمتی باید با توجه به پورت بورد تغییر کنه !
      فکر میکنم مدل برد شما nano نباشه ، یا این که برد رو جدیدا تهیه کردید ، چون باوود رو 115200 گذاشتید.

  5. Avatar سعید گفت:

    سلام بسیار آموزش با کیفیتی بود به من در اتخاب ide خیلی کمک کرد اگر ممکن است باز هم در مورد این محیط و ویژگیهای آن مطلب بنویسید.
    اگر ممکن است در مورد سرعت اجرای برنامه های هگز در میکرو که توسط gcc نوشته شده با iar هم داشته باشید البته از نظر حجم در خود سایت iar مقایسه ای پیدا کردم .
    به هر حال محیط متن باز و رایگان مزیتهای زیادی داد و من ترجیح می دهم از اتمل استودیو استفاده کنم.و در جایی که مسله زمان مطرح است از اسمبلی در کنار سی استفاده کنم.راهنمایی شما در این مورد چیست؟

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز ؛ بله همیشه متن باز خوبه 🙂
      البته بله قبول دارم که iar ظاهرا راندمان بالاتری داره ولی کافیه به قیمتش هم توجه کنید ؛ اما خوب انشالله توی برنامه میذاریم که تست از راندمان کد خروجی هم توی GCC و هم IAR داشته باشیم.
      جاهایی که زمان بندی خیلی مهم باشه توابع رو با اسمبلی مینویسم ؛ اینطوری کنترل بهتری روی اجرای کد خواهیم داشت و زمان رو بهتر مدیریت خواهیم کرد.

  6. Avatar Ali گفت:

    سلام دوست عزیز ببخشید با توجه به فروش شرکت اتمل توسط مایکروچیپ آیا از این کامپایلر هنوز پشتیبانی میشه و براش آپدیت میاد؟

    1. زئوس Zeus زئوس Zeus گفت:

      در ادامه روال آپدیت و بروز رسانی فکر نمی کنم مشکلی پیش بیاد ، اما شرکت میکروچیپ ایران رو تحریم کرده ، و برای دانلود باید با تغییر آیپی تحریم ها رو دور بزنید
      بجز این مساله ، مشکل دیگه ای وجود نداره و بروزرسانی ها در دسترس خواهند بود.

  7. Avatar دانش گفت:

    سلام
    من هم موافقم اتمل استدیو بهترین کامپایل برای avr هست

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیر
      در واقع اگر بخوام به صورت کامل تر بگم ، اتمل استودیو تنها یک ویرایشگر است که از GCC به عنوان کامپایلر استفاده می کند.

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

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