AVR, توصیه شده, مقاله

بررسی زبان، کامپایلر و محیط‌های برنامه نویسی مختلف برای میکروکنترلر AVR

به نام یکتای بی همتا
در این مقاله به بررسی معایب و مزایای استفاده از زبان ها، کامپایلر ها و محیط های مختلف برای برنامه نویسی میکروکنترلر AVR می پردازیم تا شما بهترین راه برای برنامه نویسی این میکروکنترلر را انتخاب کنید. همچنین روش پیشنهادی در انتهای مطلب می‌تواند برای هر میکروکنترلر دیگری که با زبان C و ثبات ها سر و کار دارد، مثل ARM مناسب باشد.

با این مقاله از سیسوگ همراه باشید.

 

محیط‌های برنامه نویسی

تعاریف

شما ممکن است تعاریف زیر را بدانید، اما در اینجا برای اینکه باز هم ابهامی در خواندن متن برای کسی وجود نداشته باشد، باید مجدداً یادآور شوم:

مفسر (مترجم) (کامپایلرcompiler): برنامه یا مجموعه‌ای از برنامه‌های رایانه‌ای است که متنی از زبان برنامه‌نویسی سطح بالا (زبان مبدأ) را به زبانی سطح پایین (زبان مقصد)، مثل اسمبلی یا زبان سطح ماشین، تبدیل می‌کند.

محیط‌های ویرایشگر متن (Text Editor) و ویرایشگر کد (Code Editor): معمولاً نرم افزارهایی بسیار سبک و سریع هستند که می‌توانند به شما در کد نویسی کمک کنند و سرعت کار شما را تا چندین برابر افزایش دهند.

محیط توسعه یکپارچه (IDE): به محیطی که یک برنامه نویس در آن برنامه نویسی می‌کند محیط توسعه یا Development Environment می گویند. بنابراین IDE یک محیط برنامه نویسی است که مجموعه‌ای از نرم افزارهای که معمولاً شامل ویرایشگر کد برنامه (Code Editor)، کامپایلر (Compiler)، دیباگر (Debugger) و در نهایت رابط گرافیکی یا GUI هستند را در یکجا جمع کرده است و در اختیار برنامه نویس قرار داده است تا بتواند به‌راحتی و بدون دغدغه کدهای برنامه خود را تولید کند. از آنجایی که برنامه نویس همه‌ی این ابزارها را کنار هم و یکجا در اختیار دارد، به آن محیط توسعه یکپارچه می گویند.

 

بررسی محیط ها و کامپایلر های مطرح

برای برنامه نویسی بر روی میکروکنترلر AVR، کامپایلرو محیط های خیلی زیادی وجود دارد، بگذارید تا چند تا از راه‌های متداول و معمول برای برنامه نویسی میکروکنترلرها را باهم بررسی کنیم.

 

کدویژن

لوگو کدویژن میکروکنترلر‌های AVR

معمولاً اکثر برنامه نویسان ایرانی برای پروگرام کردن میکروکنترلر AVR از کدویژن استفاده می‌کنند.

کامپایلر کدویژن: طبق نتایج حاصله از آزمایش، از متغیرهای 64 بیتی پشتیبانی نکرده و در مقابل کامپایلر های دیگر همچون GCC عملکرد بسیار ضعیفی دارد.

محیط ویرایشگر متن: فاقد هرگونه ابزار جهت سهولت در برنامه نویسی.

IDE: وقتی شما از کدویژن استفاده می کنید ، مجبور هستید که از ویرایشگر کد خود کدویژن استفاده کنید و قادر نخواهید بود که از ویرایشگر های پیشرفته ای مثل نت بینز یا ایکلیپس استفاده کنید. وقتی از ویرایشگر های پیشرفته استفاده می کنید هم توسعه برنامه خیلی سریعتر خواهد بود و هم پیدا کردن خطا های احتمالی برنامه راحت تر خواهد بود.

خلاصه: “کدویژن IDE مناسبی برای میکرو نیست!”، نه به کدویژن!

 

کامپایلر قدرتمند GCC

لوگو کامپایلر GCC برای زبان C/C++

دقت داشته باشید که GCC کامپایلر است، نه محیط برنامه نویسی. کدویژن یک IDE است که هم دارای محیط برنامه نویسی و هم کامپایلر می‌باشد. یک جایگزین مناسب برای کامپایلر کدویژن، کامپایلر متن باز و رایگان GCC می‌باشد. اگر مقاله‌های بالا را مطالعه کرده باشید، تفاوت کامپایلر GCC و کدویژن را با یکدیگر متوجه خواهید شد. از لحاظ کارایی و بهینه سازی، کامپایلر GCC بسیار بهتر از کدویژن عمل می‌کند. در مورد محیط برنامه نویسی GCC نیز نگرانی وجود ندارد، شما قادر خواهید بود تا GCC را به هر محیط برنامه نویسی دلخواهی متصل کنید. در ادامه مطلب، یک IDE مناسب نیز برای برنامه نویسی به شما معرفی خواهیم کرد. لازم به ذکر است نرم افزار آردوینو نیز از کامپایلر استاندارد GCC بهره می برد.

 

آردوینو

محیط برنامه نویسی آردوینو

قبلاً در سیسوگ، مطلبی تحت عنوان “آردوینو خوب، بد، زشت! همه چیز درباره آردوینو” منتشر شد. در این مقاله تقریباً بخش زیادی از ابهامات در مورد برد آردوینو برطرف شده است، اما لازم است تا در مورد برد و نرم افزار آردوینو یک سری نکات تکمیلی را نیز خدمت شما ارائه کنم تا برخی ابهامات باقی مانده نیز برطرف گردد.

بالاخره آردوینو خوب است یا بد؟

در مورد آردوینو، همان‌طور که می‌دانید سخت افزار و نرم افزاری به‌طور کامل متن باز (OPEN SOURCE) دارد. این بدان معنی است که آردوینو یک پلت فرم اختصاصی و بسته نیست. شما با مطالعه مستندات آن، می‌توانید با تمام جزئیات آن آشنا شوید. نکته مهم اینجاست که شما از طریق آردوینو می‌توانید به‌طور کامل به سخت افزار و نرم افزار دسترسی داشته باشید. برای مثال، شما می‌توانید تمامی رجیستر های میکروکنترلر را به راحتی درون برنامه و بدون انجام هیچ‌گونه تنظیمات خاصی صدا بزنید. آردوینو شامل یک سری کتابخانه (لایبری) از پیش نوشته شده است که شما می‌توانید به راحتی و با صدا زدن توابع سطح بالا، کارهای مختلفی را انجام بدهید. برای مثال برای کنترل سرو موتور، استفاده از واحد A/D، وقفه‌ها (Interrupts) و… خود آردوینو تمام ثبات (رجیستر) های لازم را برای شما تنظیم می‌کند.

اما اینجا یک ابهام وجود دارد. برخی فکر می‌کنند اگر شما ابتدا به‌جای یادگیری مستقیم ثبات‌ها، از توابع و کتابخانه‌های آردوینو استفاده کنید، دیگر هیچ‌گاه موفق به یادگیری عمیق‌تر نمی‌شوید.

این جمله هم درست است و هم غلط!
✔️ درست از این جهت که آردوینو لقمه آماده را دهان شما می‌گذارد و شما تنبل می‌شوید!
❌ اما غلط از این جهت که شما در آردوینو دسترسی کامل به تمام ثبات‌ها را هم دارید!

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

ت.جه داشته باشید که آردوینو صرفاً یک برد الکترونیکی نیست، بلکه یک فریمورک است که شما به وسیله آن قادر خواهید بود تا به جز بردهای آردوینو، برای تراشه‌های AVR و خیلی از بردهای الکترونیکی دیگر نیز کد بنویسید. محدودیتی که می‌توان برای آردوینو در نظر گرفت، انتخاب میکروکنترلری است که برای آن کد می‌نویسید. خوشبختانه اکثر تراشه‌های پر کاربرد AVR، مثل Atmega32، Atmega16 و… را می‌توانید به عنوان یک برد به آردوینو اضافه کنید! در غیر این صورت، اگر برنامه نویس و طراح حرفه‌ای هستید، باید تراشه مورد نظرتان را برای آردوینو به عنوان یک برد جدید تعریف (پورت) کنید. در عوض، آردوینو مالتی پلت فرم است! برای مثال اگر شما یک بار کدی را برای میکروکنترلر های AVR بنویسید، می‌توانید همان کد را نهایتاً با تغییرات بسیار کوچک بر روی بردهای دیگری که آن‌ها هم با آردوینو برنامه نویسی می‌شوند، اجرا کنید. مثل برد STM32F103C Blue Pill که تراشه آن ARM می‌باشد.

 

BASCOM-AVR

میانبر (شورتکات) محیط برنامه نویسی بسکام AVR
این زبان در سال‌های نخست و در دورهٔ مینی کامپیوترها، به منظور دسترسی دانشجویان به کامپیوتر و آموزش اصول اولیه برنامه‌نویسی طراحی شد. این زبان ساختار بسیار ساده‌ای دارد و یادگیری آن برای افرادی که تا کنون برنامه نویسی نکرده‌اند، راحت است، اما با این حال توصیه می‌کنم اگر برنامه نویسی نمی‌دانید و دنبال راهی برای ساده‌تر شدن کد نویسی هستید، این زبان را انتخاب نکنید! قصد ما تخریب و یا توهین به برنامه نویسان این زبان نیست، اما با توجه به ساختار این زبان، برای کاربردهای سخت افزاری توصیه نمی‌شود.

به نمونه‌ای از کد بسکام برای راه اندازی سرو موتور با استفاده از PWM دقت کنید: (منبع کد)

این یک مثال ساده بود، اگر شما بخواهید یک پروژه بزرگ، با کلی اینتراپت و تابع و… را با همین روش بنویسید، ممکن است کمی شلوغی کد ها شما را اذیت کند.

 

انتخاب بهترین محیط برنامه نویسی

توجه داشته باشید که هیچ گاه نمی‌توان گفت یک زبان بهترین زبان است، زیرا هر زبانی یک کاربرد بخصوصی دارد. در اینجا چند تا تا از کامپایلرها، زبان‌ها و محیط‌های برنامه نویسی متداول و معمول را برای برنامه نویسی میکرو را بررسی کردم و از این میان کامپایلر GCC و محیط برنامه نویسی آردوینو عملکرد بهتری داشته‌اند. نرم افزار آردوینو خود برای کامپایل کردن کدها از GCC استفاده می‌کند، اما شما محدود به برنامه نویسی با زبان ++C و ساختار تعریف شده آردوینو هستید. هرچند برنامه نویسی شی‌ء گرا می‌تواند تأثیر بسیار زیادی در بهبود و کارایی کد شما داشته باشد، اما ما به دنبال راهی هستیم که هم بتوانیم با C و هم ++C همزمان برنامه بنویسیم. یکی دیگر از عیوبی که می‌توان برای نرم افزار آردوینو در نظر گرفت، محیط برنامه نویسی یا (IDE) بسیار خشک و ساده است. آردوینو بیشتر از IDE بودن، ویرایشگر متن است! چون ویژگی‌های یک IDE خوب را ندارد. یک IDE خوب، باید به معنی واقعی کلمه، شما را در نوشتن کد یاری کند. برخی از ویژگی‌های محیط برنامه نویسی خوب:

     • کامل کردن کد شما با نمایش پیشنهادهای مختلف

     • نمایش خطاهای نوشتاری یا Syntax Errors در همان لحظه

     • خطایابی هوشمند

     • پیشنهاد الگوریتم بهتر

     • رنگ پس زمینه مناسب و قابلیت تنظیم آن

     • رنگ مناسب برای کدها

و …

که این موارد تقریباً در محیط اصلی آردوینو، کدویژن و بسکام رعایت نشده است! خوشبختانه شما می‌توانید کامپایلر GCC را به IDE های مختلف متصل کنید. یکی از محیط‌های برنامه نویسی خیلی عالی، محیط Eclips است. این گونه هم شما از یک محیط برنامه نویسی پیشرفته با تمام امکانات استفاده می‌کنید و هم از یک مترجم استاندارد برای تولید خروجی بهینه شده خود دارید. ++notepad نیز یک ویرایشگر کد بسیار ساده و روان است. اگر شما یک سیستم بسیار کند دارید، می‌توانید نت‌پد++ را که حجم کمی هم دارد، دانلود کرده و آن را به GCC متصل کنید. حتی در محیط ساده نت‌پد++ نیز، شما نسبت به کدویژن و آردوینو امکانات بیشتری برای برنامه نویسی دارید. IDE و Code editor های زیادی وجود دارند. با مطالعه مقاله‌های زیر شما می‌توانید مطابق میل خود، یک محیط را به GCC متصل کنید:

 

چگونه می‌توانید هم خدا را داشته باشید و هم خرما را؟!

محیط توسعه یک پارچه اتمل استودیو (Atmel Studio)، یک محیط فوق العاده است که از ترکیب قدرتمند Visual Studio و کامپایلر GCC تشکیل شده است. با توجه به اینکه به‌طور رسمی و رایگان توسط خود شرکت Atmel عرضه شده است، می‌تواند گزینه بسیار خوبی برای برنامه نویسی همزمان برای AVR ،ARM و آردوینو باشد! همچنین این نرم افزار دارای کتابخانه‌ی بزرگی از پروژه‌های استاندارد و آماده است. تقریباً شما همه‌ی مزیت‌های یک محیط برنامه نویسی خوب را یکجا باهم دارید! اما تنها عیبی که این محیط دارد، حجم سنگین فایل‌های آن است که موقع نصب در حدود 6 گیگابایت از فضای هارد شما را اشغال می‌نماید.

یک روش پیشنهادی دیگر برای شما این است که: ابتدا یک محیط برنامه نویسی مناسب (بسته به سلیقه، راحتی و تجربه خودتان) مثل Eclips یا VSCODE را انتخاب کنید، سپس کامپایلر قدرتمندی مثل GCC را به آن اضافه کنید، حال شروع به برنامه نویسی استاندارد با زبان C یا ++C و به کمک ثبات‌ها کنید. شما با همین روش، می‌توانید کتابخانه‌های آدوینو را نیز اضافه نموده و آردوینو هم بنویسید! از آنجایی که پروگرام کردن، بستن مدار و تست الگوریتم‌ها در آردوینو ساده‌تر و سریع‌تر است، پیشنهاد می‌کنیم ابتدا ایده اصلی را بر روی آردوینو تست کنید و پس از اجرایی شدن و گرفتن نتیجه عملی، شروع به نوشتن برای AVR یا ARM کنید!

با این روش پیشنهادی:

✔️ دیگر با محیط خشک آردوینو، کدویژن و بسکام رو در رو نیستید!

✔️ محدود به زبان C یا ++C نیستید و می‌توانید با هرکدام که خواستید کد بنویسید!

✔️ می‌توانید از کتابخانه‌ها و توابع آماده آردوینو هم استفاده کنید!

✔️ می‌توانید همزمان برای AVR،ARM، آردوینو و… برنامه نویسی کنید!

✔️ حجم اشغالی نرم افزار در مقایسه با اتمل استادیو بسیار کمتر است!

✔️ خروجی استاندارد و بهینه شده دارید!

 

آموزش بعدی سیسوگ در مورد آماده سازی محیط VSCODE برای برنامه نویسی AVR  را از دست ندهید.

در نهایت، انتخاب بهترین راه برای برنامه نویسی میکروکنترلر، بستگی به نیاز شما دارد. همچنان انتخاب با شماست!

هم شاید شما راه بهتری سراغ داشته باشید، پس بی درنگ چشم به راه پیشنهادهای شما هم هستیم.

 


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

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

 

پاسخی بگذارید

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

47 دیدگاه در “بررسی زبان، کامپایلر و محیط‌های برنامه نویسی مختلف برای میکروکنترلر AVR

  1. سلام وقت بخیر. یه سوال داشتم که فعلا جواب خاصی براش نتونستم پیدا کنم. تقریبا از سال 81 دارم با میکروهای AVR و بعد هم XMega و اخیرا STM32 کار میکنم. مشکلی که با کامپیالرهای AVR دارم اینه که RAM بزرگتر از 64 کیلو بایت رو با آدرس دهی مستقیم (مثلا یه متغیر با سایز 300 کیلو بایت داشته باشیم یا بهتر بگم مدل خافظه Medium و یا Large)ساپورت نمیکنن بجر IAR. من هم که رم زیادی لازم داشتم تقریبا از سال 90 سوییچ کردم روی IAR. ولی به خاطر قفل شکسه بودن این کامپایلر باگهایی توی اون دیدم که گاها ترسیدم. خیلی دلم میخواد از اتمل استودیو استفاده کنم ولی به همین دلیل نمیشه.
    راهکار چیه؟ آیا راهی هست که از gcc برای دیتای بالای 64 کیلو استفاده کنیم؟ چون همونطور که میدونید پوینتر آدرس در این کامپیالر دو بایتی هست ولی در IAR سه بایتی.

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

      سلام
      خوب خیلی عالی :)‌- چند سال پیش حدود ۴ سال پیش همین مشکل رو داشتم تا اون موقع راهکار بدرد بخوری ارائه نشده بود اون موقع به شکل آدرس دهی مشکل رو حل کرده بودم – البته رفتار gcc کاملا منطقیه – توی میکرویکنترلر های ۸ بیتی ۱۶ بیت برای باس آدرس وجود داره که میشه همون ۶۴ کیلو فضای آدرس دهی اما ابتکار آتمل توی ایجاد بیت LPM که اجازه تعریف فضای بیشتر رو میده این مشکل رو حل کرده ! و مشکل جدیدی به وجود آورده – خوشبختانه الان راهکار خوبی براش وجود داره
      استفاده از نوع اشاره گر farptr_t که برای آدرس دهی حافظه بیشتر از ۶۴ کیلو استفاده میشه
      لینک های زیر رو مطالعه کنید
      https://www.avrfreaks.net/forum/locating-library-file-fixed-address
      https://www.microchip.com/webdoc/AVRLibcReferenceManual/ch20s05s01.html

  2. محمد معین گفت:

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

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

      اگر هم باشه حداقل اینه که من نمیشناسم

  3. رایان گفت:

    سلام. و تشکر از مقاله ی خوبتون.
    اما حالا بفرمایید پروگرامر بی دردسز برای کار با این IDE چی هستش؟ البته برای AVR و Xmega.

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

      هم میتونید از پروگرامر سیسوگ استفاده کنید – تو سایت جستجو کنید پیداش میکنید
      اما پروگرامر usbasp هم واقعا پیشنهاد بدی نیست

      1. رایان گفت:

        سلام.
        1- پروگرامرهای کلونAvrisp MKII بر اساس پروژه LUFA در محیط Eclipse و کامپایلر GCC قابل استفاده نیست؟ پروگرامرهای بر مبنای پروتکل STK500 چطور؟ مخصوصآ STK500 V2؟
        2- با مطالعه قسمت نظرات، مقاله پروگرامر Sis-Link ساخت پروگرامر ARM و AVR: دگردیسی، به نظر میرسه دوستان در محیط ویندوز 10 و 64 بیتی موفق به انجام کار نشدند! آیا استنباطم اشتباهه؟
        3- آیا ترجیح به استفاده از Eclipse و کامپایلر GCC و پروگرامر sisoog_Link در سیستم عامل لینوکس هستش؟
        لطفا یکبار قطعی با توجه به سوالات و پاسخ ها روشنگری کنید؟
        جدای از مطالب فوق، قدردان کار سخت و زحمات بی منت شما در این حیطه هستم.

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

          سلام
          در محیط eclipse به سادگی تمام با استفاده از avrdude تقریبا هر نوع پروگرامی که برای avr ساخته شده است قابل پشتیبانی است – دقت کنید هر مدل پروگرامری ک ساخته شده 🙂
          من خودم ویندوز ندارم که چک کنم – ولی فکر نمیکنم مشکل بقرنج بوده باشه – اگر فرصت کنم با سیستم یکی از دوستان چکش خواهم کرد.
          اگر ویندوز هم داشتم من از همین ترکیب استفاده خواهم کرد.

  4. محمد معین گفت:

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

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

      درست متوجه منظورتون نشدم
      ولی من از سیستم عامل freertos استفاده میکنم و از GCC و eclipse برای کد نویسی استفاده میکنم.

  5. محمد گفت:

    سلام و درود ممنون از متن مفیدتون
    ببخشید من سوالی ذهمنم رو در گیر کرده خواستم بدونم میشه کدهایی که به زبان c (کدویژن) مستقیم به اتمل استودیو تبدیل کرد و یا اگر نمیشه منبع آموزشی خوبی برای اتمل استودیو میشه معرفی کنید

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

      خوب تا حدود زیادی میشه ولی برخی جاها رو نمیشه و باید دستی تغییر ایجاد کنید به عنوان نمونه اینتراپت ها یا دسترسی به حافظه های eeprom و یا flash و ….

  6. هادی گفت:

    سلام،من تو اضافه کردن gcc به VSCODE به مشکل خوردم ممکنه برای شما آموزشش رو بزارین؟

    من آردوینو و AVR کار میکنم و محیط VSCODE هم میپسندم ولی نیاز به یه آموزش خوب مثل آموزشای سایت شما دارم ممنون میشم قبول زحمت بفرمایید

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

      سعی میکنم که اموزشش رو ایجاد کنیم و منتشر کنیم 🙂

  7. m.h Yazdani گفت:

    زمانی بود که خبری از avr نبود و با ۸۹c 51 و زبان اسمبلی کار میکردم
    میکروکنترولر avr تو زمان خودش برای من یه انقلاب بود که از شر ۸۹c51 راحت شدم

    با آمدن میکرو arm تا مدتی در برابرش مقاومت کردم (سن که بالا میره, محافظه کار شدم)

    واقعیت اینه که avr دیگه ارزش کارهای جدید رو نداره

    اگه تازه میخواهید شروع کنید …..

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

      زمانی که شروع کردم الکترونیک رو اصلا میکروکنترلری وجود نداشت ! بعدها Z80 اومد و کد های اسمبلی رو با دست به باینری تبدیل میکردیم ! بعد ها ۸۰۵۱ و … کم کم دیگر میکروکنترلرها اومدند ولی معتقد نیستم که avr دیگه ارزش کار کردن نداره ، اتفاقا بیشتر از پیش ارزش کار کردن داره! همیشه مساله قیمت نیست – همیشه مساله تعداد تایمر و … نیست

      1. m.h Yazdani گفت:

        مطمئنا تجربه شما نکات ویژه ای تو این میکرو کنترلر قدیمی نصبت به انواع جدیدتر می بینه که از چشم این حقیر پنهان شده

        موفق باشید.

  8. محمد معین گفت:

    سلام
    ببخشید من نسخه لبویو ۲۰۱۷ به بالا رو که نصب میکنم با مشکل لایسنس روبه رو میشم،خواستم ازتون سوال کنم که چه نسخه ای مناسب هست؟

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

      سلام دوست عزیز
      والا لب ویو کار نمیکنیم !! ولی به نظرم بهتره نرم افزار های پولی رو کرک نکنید 😐

    2. حسام فرد گفت:

      سلام
      لب ویوو تمامی نسخه هایی که داره لایسنسشون یک مدل فعال میشه شما ببینید موردتون از سیستم و سیستم عامل یا حتی آنتی ویروس نیاشه وگرنه هر نسخه ایی نصب کنید مورد داره براتون. برای ماژول ها هم اگر نسخه 64 بیتی نصب کردید حتما ماژول 64 باید باشه وگرنه کار نمیکنه بهترین روش برای کار کردن ماژولها نصب نسخه 32 بیتی هستش.

  9. محمد گفت:

    سلام کتابخونه راه اندازی برخی از ماژول ها در codevision موجود هست. برای مثال راه اندازی ال سی دی کاراکتری و …
    میخواستم بپرسم که در gcc هم کتابخونه داره؟ مثلا کتابخونه راه اندازی lcd ها و … ؟

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

      سلام دوست عزیز
      بله به وسعت گیت هاب کتابخونه برای GCC موجوده و بهتره بدونید تمام کتابخونه های کدویژن از روی GCC برای کدویژن پورت شدن !
      نگران این موضوع نباشید.

  10. mohammad گفت:

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

    1. Digi Boy Digi Boy گفت:

      سلام.
      ممنون که نظر خودتون رو در این مورد بیان کردید. بله، کدویژن برای شروع راحت تر هست، اما چون نرم افزاری کرک شده است و در مقایسه با GCC عملکرد خیلی ضعیف تری دارد، پیشنهاد میکنم از کامپایلر GCC استفاده کنید.
      بله، صد در صد چیزی به اسم بهترین زبان وجود ندارد، منظور بنده انتخاب بهترین زبان با توجه به نیاز خودتون و کاربردی که انتظار دارید بود.

  11. مهدی گفت:

    سلام من واقعا از مقاله خوبتون تشکر میکنم دقیقا همین دغدغه رو برای دانشجوهام دارم. ممنون که تجربیاتون رو با بقیه به اشتراک میذارید.

    1. Digi Boy Digi Boy گفت:

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

  12. محسن گفت:

    سلام eclipse و winavr رو نصب کردم ولی هنگام کامپایل به مشکل برخوردم لطفا میشه کمکم کنید ممنون

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

      winavr خیلی قدیمی است و آخرین نسخه gcc رو از سایت آتمل دانلود کنید
      چه خطایی میده که بتونم راهنمایی کنم ؟

      1. محسن گفت:

        حل شد مهندس ارور 0x0000142 میداد و این که نسخه ی eclipse هم باید قدیمی باشه الان دارم باش کار میکنم ممنون

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

          خواهش میکنم
          من الان دارم از آخرین ورژن Eclipse استفاده میکنم البته روی لینوکس نمیدونم توی ویندوز چه اتفاقی براش می افته

          1. محسن گفت:

            آخه من چون از winavr استفاده میکنم احتمالا این مشکل پیش میاد یعنی شما میگیند از gcc برای کامپایل کدهای avr استفاده کنم؟

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

            این احتمال خیلی زیاده در واقع winavr یه ورژن خیلی قدیمی از همون ابزار gcc هست که بعد ها توسط خود آتمل توسعه داده شد و داخل سایتش برای دانلود قرار گرفت و از همین جهت هم دیگه winavr بروزرسانی نشد.

          3. محسن گفت:

            خب مهندس میشه لطف کنید آموزش برای نصبش رو برام بفرستیند به ایمیلم یا همینجا بزارین چون برنامه atmel studio از نظر حجم یک مقداری سنگینه من Eclipse رو ترجیح میدم ممنون

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

            سلام سعی میکنم آموزشش رو آماده کنم

          5. رایان گفت:

            سلام. از چه نسخه ی لینوکس برای الکترونیک استفاده می کنید؟

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

            فرق چندانی نمی کنه واقعا من خودم در حال حاظر از ابونتو استفاده میکنم 🙂
            دبیان هم خوبه

  13. هادی گفت:

    خیلی ممنونم برای این مطلب،میشه از کامپایلر GCC برای VSCODE استفاده کرد؟

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

      سلام بله قطعا میشه 🙂

  14. کیان گفت:

    سلام عالی بود تشکر

    1. Digi Boy Digi Boy گفت:

      سلام.
      خواهش می‌کنم.

  15. Reza Poordana reza گفت:

    سلام و تشکر بابت مقاله
    اتمل استودیو هم در آخرین نسخه امکان کدنویسی برای آردوینو و همینطور به زبان اسمبلی را دارد.

    1. Digi Boy Digi Boy گفت:

      بله، از توجهتون ممنونم.

  16. محمد گفت:

    سلام این GCC و محیط ECLIPS مثل کدویژن دارای کد ویزارد هم هست یا نه؟
    تسلط به رجییستر ها و نحوه کار کردن باهاشون خیلی مهمه ولی به نظرم وجود یک کدویزارد خیلی میتونه کمک کنه به سرعت برنامه نویسی.

    1. Digi Boy Digi Boy گفت:

      هرچند بهتره خودتون رجیستر ها رو بنویسید، اما وجود کدویزارد میتونه خیلی کمک کننده باشه.
      نرم افزار های جانبی زیادی به صورت رایگان منشتر شده اند که کار پیکر بندی اولیه را انجام می دهند مثل AVRWiz

  17. یاسر گفت:

    نرم افزار codeblocks هم خوب است.