آموزش ایجاد پروژه AVR جدید در نرم افزار Eclips

آموزش ایجاد پروژه AVR جدید در نرم افزار Eclips

آموزش ایجاد پروژه AVR جدید در نرم افزار Eclips
آموزش ایجاد پروژه AVR جدید در نرم افزار Eclips

در قسمت قبل، نحوه آماده سازی محیط برنامه نویسی 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

 

بر روی فایلی که ایجاد کردید، دو بار کلیک کنید تا در ویرایشگر باز شود. حال، شما می‌توانید کدهای خود را در این فایل وارد کنید:

 

بیلد کردن و کامپایل پروژه

برای بیلد و کامپایل پروژه AVR در Eclips شما می‌بایست ابتدا یک سری تنظیمات را انجام دهید. از طریق منوی

Windows -> preferences

پنجره preferences را باز کنید.

سپس از طریق منوی زیر، تنظیمات را مطابق تصویر انجام دهید.

General -> Workspace

این تنظیمات، برای این است که هر بار شما پروژه خود را build می‌کنید، به صورت خودکار ذخیره نیز گردد. همچنین از کامپایل شدن خودکار که باعث کندی سیستم می‌شود، جلوگیری می‌کنید. یک بار که این تنظیمات را انجام دهید، کافی است.

بر روی پروژه کلیک راست کرده و properties را بزنید. سپس از طریق منوی زیر، همانند تصویر تیک گزینه‌ها را بزنید. (دقت داشته باشید که پنجره تنظیمات پروژه، با تنظیماتی preferences مرحله قبل متفاوت است و احتمالاً برای هر پروژه می‌بایست آن را تنظیم کنید.)

C/C++ Build -> Setting

AVR C Buid Setting

 

سر انجام، با کلیدهای ترکیبی Ctrl + b و یا با کلیک کردن بر روی علامت چکش در ابزارهای بالای اکلیپس، می‌توانید پروژه خود را بیلد کنید. اگر خطایی وجود داشته باشد، در سربرگ problems می‌توانید مشاهده کنید.

بیلد پروژه AVR در Eclips بدون مشکل

 

نصب درایور پروگرامر USBASP

در این آموزش از پروگرامر USBASP استفاده شده است. برای استفاده کردن از آن در پروژه AVR Eclips و شناخته شدن آن توسط AVRDUDE باید مطمئن شویم که درایور آن به درستی نصب شده است. برای این کار، ابتدا USBASP را به کامپیوتر متصل کرده و سپس نرم افزار Zadig را از این قسمت دانلود کنید. از طریق منوی Options بر روی List all devices کلیک کنید و از لیست USBASP را انتخاب کنید. سپس در کادر جلوی آن، گزینه libusbK(v3.0.7.0) driver را انتخاب کرده و بر روی دکمه install کلیک کنید تا درایور USBASP نصب شود.

Zadig driver installer

 

تنظیمات پروگرامر در 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) که ساختید، انتخاب کنید.

0 نفر

پــــســنــدیـده انـد

توجه

Digi Boy
Digi Boy

به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)

دیدگاه ها

20 دیدگاه

  • حامد کاظمی
    ۲۱ فروردین ۱۴۰۱

    سلام و خدا قوت .
    با آرزوی قبولی طاعات و عبادات شما .
    ببخشید در حال حاضر در آخرین مرحله برای دریافت خروجی از برنامه با این error روبرو شدم :
    make***[makefile53:GPIO1.elf] error1
    کهGPIO اسم پروژم هست !!
    سراغ Path هم رفتم و درست بود و cmd همون پیغامی که گفتید رو نمایش داد .
    البته هم هدر فایل های avr/io و until/delay و هم رجیستر های میکرو mega32 همگی از طرف eclipse با خط قرمز مشخص شدن و خطا گرفته شدن .
    نمیدونم اشکال از کجاست راهنمایی بفرمایید .

    • Zeus ‌
      Zeus ‌
      ۲۲ فروردین ۱۴۰۱

      سلام و درود – لطف میکنید چند تا نکته رو بگید
      ۱. آیا ویندوز هستید یا لینوکس
      ۲. مراحل رو مثل آموزش قسمت قبلی پیش رفتید
      ۳. ورژن eclipse چنده (توصیه میکنم از ورژن آموزش استفاده کنید)
      ۴. تصویری از خطا رو میشه جایی آپلود کنید و اینکش رو قرار بدید

      • حامد کاظمی
        ۲۳ فروردین ۱۴۰۱

        سلام مجدد .
        نسخه (با بد بختی گرفتم چون لینکش تحریم شده)eclipse c/CPP mars2
        ویندوز ۱۰
        مراحل طبق آموزش پیش رفتم .
        مشکل شناسایی نکردن رجیستر های io و کلا هر چیزی مربوط به میکرو هست .
        رجیستر های پورت رو میزنه can not resolved زیرش خط قرمز میکشه …
        بیلد کنی هموم ارور پست اول رو میده ….!!

        • Zeus ‌
          Zeus ‌
          ۲۴ فروردین ۱۴۰۱

          خوب بسیار عالی ، اینها خطا نیستند در واقع هشدار هستن که خود ide داره به شما میده الان اگر این هشدارها رو نادیده بگیرد آیا برنامه تون کامپایل میشه ؟ یا خطای هنگام کامپایل دارید
          اینو بهم بگید اگر خطایی نیست بگم چطور میشه اون هشدارها رو غیرفعال کرد.

          • حامد کاظمی
            ۲۵ فروردین ۱۴۰۱

            سلام .
            نه دیگه بیلد نمیکنه .
            همون ارور کامت اولم که نوشتم رو میده . هشتار هم نیست … خطاست . نوشته error نه warning …

            0
          • Zeus ‌
            Zeus ‌
            ۲۷ فروردین ۱۴۰۱

            سلام
            شما تمام مراحل رو مثل همین آموزش طی کردید ؟
            کل متن خطایی که میده رو بذارید که بتونم متوجه بشم خطا از کجاست و به چه دلیله

            0
  • میثم کهن
    میثم کهن
    ۱۳ اسفند ۱۴۰۰

    سلام
    خسته نباشید
    ممنون بابت همه اموزش های شما و تمامی دوستان
    فایل اموزش یا سایت اموزش هست برای یادگیری ؟؟
    با کدویژن کارمیکردیم الان خیلی سردرگم شدم بابت دستورات
    ممنون از راهنمایی

    • Sisoog Os
      Sisoog Os
      ۱۴ اسفند ۱۴۰۰

      سلام دوست عزیز
      به نظرم اگر با همون کدویژن راحت هستید خودتون را اذیت نکنید و از همون بستر استفاده کنید
      ولی خب یه سری اموزشها را ما اینجا منتشر کردیم که میتونه پایه خوبی باشه

  • danny
    ۳۰ مرداد ۱۴۰۰

    سلام
    چطور میشه کتابخونه های مختلف رو به برنامه اضافه کرد؟

    • Digi Boy
      Digi Boy
      ۳۰ مرداد ۱۴۰۰

      درود بر شما
      بر روی پروژه کلیک راست کرده و از طریق منوی زیر، مسیر کتابخانه‌های استاندارد زبان C را به برنامه خود اضافه کنید!
      Properties > C/C++ Build > Settings > AVR C Linker > Libraries
      همین طور با کپی و پیست کردن فایل های دیگر کتابخانه ها به پروژه!

      • Danny
        ۳۰ مرداد ۱۴۰۰

        این کار رو کردم اما خطا میده.
        make: *** [LCD.elf] Error 258

        • Digi Boy
          Digi Boy
          ۳۱ مرداد ۱۴۰۰

          شما فقط فایل‌های کتابخانه رو در پروژه کپی پیست کنید، تنظیمات بیلد پروژه رو تغییر ندهید.
          مطمئن هستید که avr-gcc در path ویندوز اضافه شده؟ احتمالاً مشکل از path باشه. داخل CMD دستور avr-gcc رو وارد کنید، باید خروجی شبیه به این دریافت کنید:
          avr-gcc: fatal error: no input files
          compilation terminated.

          • Danny
            ۱ شهریور ۱۴۰۰

            متشکرم، مشکل برطرف شد.

            0
          • Digi Boy
            Digi Boy
            ۱ شهریور ۱۴۰۰

            امیدوارم همیشه موفق باشید!

            0
  • aria
    ۱۸ مرداد ۱۴۰۰

    سلام برای atmel stdio با avr wizard میشه code generate کرد راهی هست که بشه اون رو به eclips اضافه کرد ؟ یا برنامه دیگری وجود داره که بتونه این کار رو قابل اعتماد انجام بدیم ؟

  • غلامی
    ۷ اردیبهشت ۱۴۰۰

    ساعت ۱۲:۳۹ نیمه شب
    بالاخره تونستم اولین برنامم رو برای avr با زبون c و در اکلیپس بنویسم. خیلی لذت بخشه … سیسوگ عااشقتم

    • Digi Boy
      Digi Boy
      ۸ اردیبهشت ۱۴۰۰

      درود بر شما، خیلی خوشحال شدیم ?

  • ashkan
    ۶ اردیبهشت ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۸ اردیبهشت ۱۴۰۰

      ممنون.
      لطفا ما رو به دوستاتون و دوستای دوستاتونم معرفی کنید ?

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک