در قسمت قبل، نحوه آماده سازی محیط برنامه نویسی Eclips (اکلیپس) را برای برنامه نویسی AVR آموزش دادیم. در این قسمت قصد داریم تا با ایجاد یک پروژه جدید AVR در Eclips اولین برنامه خود را (LED چشمک زن) به زبان C برای AVR بنویسیم.
ایجاد اولین پروژه AVR Eclips
اول از همه ضربدر پنجره Welcome را بزنید تا ابزارک های سمت چپ نمایان شوند.
سپس از طریق منوی زیر، یک پروژه AVR Eclips ایجاد کنید.
File -> New-> C/C++ Project
در پنجره باز شده، C Managed Buid را انتخاب کرده و Next را بزنید.
در مرحله بعدی، نامی برای پروژه خود انتخاب کنید، همچنین بر روی AVR Cross target Application کلیک کرده و Empty Project را انتخاب کنید. دقت داشته باشید که اشتباهاً حالت دیگری را انتخاب نکنید.
با زدن دکمه Next به مرحله بعدی رفته و در این قسمت، تیک Debug را بر میداریم (چون معمولاً در AVR پروژهها را دیباگ نمیکنیم، مگر آنکه ابزار این کار، یعنی پروگرامر jtag را داشته باشیم). همین طور گزینه Release را نیز انتخاب میکنیم.
در مرحله بعدی نوع تراشه (برای مثال Atmega32) و فرکانس کاری میکروکنترلر را انتخاب میکنیم.
خوب، هم اکنون شما در سمت راست و در قسمت Project Explorer یک پروژه جدید با نامی که انتخاب کردید، دارید.
حال، میبایست یک فولدر برای کدهای خود ایجاد کنیم. برای این کار، ابتدا پروژه را انتخاب کرده و سپس از طریق منوی
File ->New -> Source Folder
و یا کلیک راست کردن بر روی پروژه AVR Eclips یک source Folder جدید میسازیم.
نامی برای پوشه سورس خود میگذاریم، برای مثال: src
همانطور که در تصویر زیر مشاهده میکنید، یک فولدر سورس ایجاد شده است، حال باید یک فایل سورس نیز به آن اضافه کنیم، به همان ترتیب، بر روی پوشه src کلیک راست کرده و یک Source File جدید میسازیم.
در پنجره باز شده، اسم فایل سورس را وارد میکنیم، برای مثال: main.c
بر روی فایلی که ایجاد کردید، دو بار کلیک کنید تا در ویرایشگر باز شود. حال، شما میتوانید کدهای خود را در این فایل وارد کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* * main.c * * Created on: * Author: Digi Boy */ #include <avr/io.h> #include <util/delay.h> int main (){ DDRA = 0xff; while(1){ PORTA ^= 0b00000010; _delay_ms(1000); } return 0; } |
بیلد کردن و کامپایل پروژه
برای بیلد و کامپایل پروژه AVR در Eclips شما میبایست ابتدا یک سری تنظیمات را انجام دهید. از طریق منوی
Windows -> preferences
پنجره preferences را باز کنید.
سپس از طریق منوی زیر، تنظیمات را مطابق تصویر انجام دهید.
General -> Workspace
این تنظیمات، برای این است که هر بار شما پروژه خود را build میکنید، به صورت خودکار ذخیره نیز گردد. همچنین از کامپایل شدن خودکار که باعث کندی سیستم میشود، جلوگیری میکنید. یک بار که این تنظیمات را انجام دهید، کافی است.
بر روی پروژه کلیک راست کرده و properties را بزنید. سپس از طریق منوی زیر، همانند تصویر تیک گزینهها را بزنید. (دقت داشته باشید که پنجره تنظیمات پروژه، با تنظیماتی preferences مرحله قبل متفاوت است و احتمالاً برای هر پروژه میبایست آن را تنظیم کنید.)
C/C++ Build -> Setting
سر انجام، با کلیدهای ترکیبی Ctrl + b و یا با کلیک کردن بر روی علامت چکش در ابزارهای بالای اکلیپس، میتوانید پروژه خود را بیلد کنید. اگر خطایی وجود داشته باشد، در سربرگ problems میتوانید مشاهده کنید.
نصب درایور پروگرامر USBASP
در این آموزش از پروگرامر USBASP استفاده شده است. برای استفاده کردن از آن در پروژه AVR Eclips و شناخته شدن آن توسط AVRDUDE باید مطمئن شویم که درایور آن به درستی نصب شده است. برای این کار، ابتدا USBASP را به کامپیوتر متصل کرده و سپس نرم افزار Zadig را از این قسمت دانلود کنید. از طریق منوی Options بر روی List all devices کلیک کنید و از لیست USBASP را انتخاب کنید. سپس در کادر جلوی آن، گزینه libusbK(v3.0.7.0) driver را انتخاب کرده و بر روی دکمه install کلیک کنید تا درایور USBASP نصب شود.
تنظیمات پروگرامر در AVRDUE
قبلاً در سیسوگ آموزش ADRDUDR را منتشر کردیم. توصیه میکنیم حتماً این آموزش را مطالعه کنید. برای آپلود فایل کامپایل شده بر روی میکروکنترلر، شما میبایست در تنظیمات AVRDUDE، نوع پروگرامر و تنظیمات آن را وارد نمایید. برای این کار، از طریق منوی زیر وارد تنظیمات AVRDUDE شوید:
windows->preferences->AVR->Avrdude->New
در این آموزش از پروگرامر USBASP استفاده شده است. بنابراین، باید یک کانفیگ برای USBASP ایجاد کنیم (اگر از پروگرامر دیگری استفاده میکنید، به جای USBASP تنظیمات مربوط به همان را وارد کنید). نام کانفیگ را USBASP میگذاریم، از لیست پروگرامر ها، USBASP را انتخاب میکنیم و در کادر port مقدار usb را وارد مینماییم و کانفیگ را ذخیره میکنیم تا در پروژههای AVR Eclips بتوانیم از آن استفاده کنیم.
حال، یک کانفیگ برای پروگرامر USBASP داریم، در پروژهای که میخواهیم بر روی میکروکنترلر آپلود کنیم، کلیک راست کرده و وارد properties میشویم. از منوی AVR وارد تنظیمات AVRDUDE میشویم. (دقت داشته باشید که منوی تنظیمات AVRDUDE که در preferences بود، با منویی که در properties پروژه وجود دارد، متفاوت است.) سپس در قسمت پروگرامر، کانفیگ USBASP که در مرحله قبل ساختیم را انتخاب کرده و OK را بزنید.
پس از اینکه پروژه خود را بیلد کردید، میتوانید با استفاده از دکمه آپلود در بالای Eclips فایل هگز خود را به راحتی بر روی میکروکنترلر آپلود کنید!
جمع بندی
آیا هر بار برای ایجاد یک پروژه AVR Eclips جدید باید تمام مراحل بالا را طی کنید؟ قطعاً نه! زیرا ما در اینجا یک سری تنظیمات را برای بار اول انجام دادیم و دفعات دیگر، بسیاری از این مراحل انجام شدهاند. شما تنها کافی است تا از طریق منوی File->New C project یک پروژه جدید با نام دلخواه و برای میکروکنترلر خود ایجاد کنید، سپس بر روی پروژه فولدر سورس و فایل سورس را بسازید. در properties پروژه نیز تنظیمات بیلد را برای ساخته شدن فایل HEX مطابق تصویر انتخاب کنید. در قسمت AVRDUDE نیز کانفیگ مربوط به پروگرامر خود را (USBASP) که ساختید، انتخاب کنید.
بسیار خوبه که از نرم افزار های رایگان و متن باز حمایت میکنید و اونها رو تبلیغ میکنید.
درخواستی که دارم این هست که یه پست بزنید در مورد نرم افزار Kicad و اون رو به کاربران معرفی کنید.
واقعا نرم افزار خوبیه ولی حیف داخل ایران شناخته شده نیست.
نمیشه بجای این همه تنظیمات از win avrاستفاده کنیم؟
میشه 🙂
سلام
توی اتمل استودیو برای تنظیم فرکانس میکرو یه #define F_CPU 1000000 مینوشتیم خودش فرکانس رو میبرد رو 1 مگاهرتز در اینجا هم چنین قابلیتی وجود داره؟
مثلا وسط پروژه بخوایم فرکانس میکرو رو عوض کنیم باید یه پروژه جدید ایجاد کنیم ؟ یا راهی برای تغییرش هست؟
بله هست، توی تمظیمات پروژه رو ببینید قسمت دیفاین ها باید باشه
سلام و خسته نباشید
من نمیتونم به قسمت قبل برم و محیط eclips برای avr اماده کنم
چند روز پیش هم تست کردم صفحه باز میشه و خطای 404 میده
ممنون از شما.
سلام و خدا قوت .
با آرزوی قبولی طاعات و عبادات شما .
ببخشید در حال حاضر در آخرین مرحله برای دریافت خروجی از برنامه با این error روبرو شدم :
make***[makefile53:GPIO1.elf] error1
کهGPIO اسم پروژم هست !!
سراغ Path هم رفتم و درست بود و cmd همون پیغامی که گفتید رو نمایش داد .
البته هم هدر فایل های avr/io و until/delay و هم رجیستر های میکرو mega32 همگی از طرف eclipse با خط قرمز مشخص شدن و خطا گرفته شدن .
نمیدونم اشکال از کجاست راهنمایی بفرمایید .
سلام و درود – لطف میکنید چند تا نکته رو بگید
۱. آیا ویندوز هستید یا لینوکس
۲. مراحل رو مثل آموزش قسمت قبلی پیش رفتید
۳. ورژن eclipse چنده (توصیه میکنم از ورژن آموزش استفاده کنید)
۴. تصویری از خطا رو میشه جایی آپلود کنید و اینکش رو قرار بدید
سلام مجدد .
نسخه (با بد بختی گرفتم چون لینکش تحریم شده)eclipse c/CPP mars2
ویندوز ۱۰
مراحل طبق آموزش پیش رفتم .
مشکل شناسایی نکردن رجیستر های io و کلا هر چیزی مربوط به میکرو هست .
رجیستر های پورت رو میزنه can not resolved زیرش خط قرمز میکشه …
بیلد کنی هموم ارور پست اول رو میده ….!!
خوب بسیار عالی ، اینها خطا نیستند در واقع هشدار هستن که خود ide داره به شما میده الان اگر این هشدارها رو نادیده بگیرد آیا برنامه تون کامپایل میشه ؟ یا خطای هنگام کامپایل دارید
اینو بهم بگید اگر خطایی نیست بگم چطور میشه اون هشدارها رو غیرفعال کرد.
سلام .
نه دیگه بیلد نمیکنه .
همون ارور کامت اولم که نوشتم رو میده . هشتار هم نیست … خطاست . نوشته error نه warning …
سلام
شما تمام مراحل رو مثل همین آموزش طی کردید ؟
کل متن خطایی که میده رو بذارید که بتونم متوجه بشم خطا از کجاست و به چه دلیله
سلام
خسته نباشید
ممنون بابت همه اموزش های شما و تمامی دوستان
فایل اموزش یا سایت اموزش هست برای یادگیری ؟؟
با کدویژن کارمیکردیم الان خیلی سردرگم شدم بابت دستورات
ممنون از راهنمایی
سلام دوست عزیز
به نظرم اگر با همون کدویژن راحت هستید خودتون را اذیت نکنید و از همون بستر استفاده کنید
ولی خب یه سری اموزشها را ما اینجا منتشر کردیم که میتونه پایه خوبی باشه
سلام
چطور میشه کتابخونه های مختلف رو به برنامه اضافه کرد؟
درود بر شما
بر روی پروژه کلیک راست کرده و از طریق منوی زیر، مسیر کتابخانههای استاندارد زبان C را به برنامه خود اضافه کنید!
Properties > C/C++ Build > Settings > AVR C Linker > Libraries
همین طور با کپی و پیست کردن فایل های دیگر کتابخانه ها به پروژه!
این کار رو کردم اما خطا میده.
make: *** [LCD.elf] Error 258
شما فقط فایلهای کتابخانه رو در پروژه کپی پیست کنید، تنظیمات بیلد پروژه رو تغییر ندهید.
مطمئن هستید که avr-gcc در path ویندوز اضافه شده؟ احتمالاً مشکل از path باشه. داخل CMD دستور avr-gcc رو وارد کنید، باید خروجی شبیه به این دریافت کنید:
avr-gcc: fatal error: no input files
compilation terminated.
متشکرم، مشکل برطرف شد.
امیدوارم همیشه موفق باشید!
سلام برای atmel stdio با avr wizard میشه code generate کرد راهی هست که بشه اون رو به eclips اضافه کرد ؟ یا برنامه دیگری وجود داره که بتونه این کار رو قابل اعتماد انجام بدیم ؟
درود بر شما!
این برنامه متن باز رو میتونید استفاده کنید:
https://sourceforge.net/projects/pcogenavr/
ساعت ۱۲:۳۹ نیمه شب
بالاخره تونستم اولین برنامم رو برای avr با زبون c و در اکلیپس بنویسم. خیلی لذت بخشه … سیسوگ عااشقتم
درود بر شما، خیلی خوشحال شدیم ?
اینجور آموزش ها فقططط تو سیسوگ پیدا میشه. . . خیییلی عالیه دمتون گرم.. خدا قوت خیلی منتظر این قسمت بودم
ممنون.
لطفا ما رو به دوستاتون و دوستای دوستاتونم معرفی کنید ?