PDA

View Full Version : گفتگو: از کدوم کامپایلر بیشتر استفاده می کنید؟



SEZAR.CO
یک شنبه 10 دی 1391, 14:01 عصر
با عرض سلام
هدف از ایجاد این تاپیک این بود که برنامه نویسان میکروی avr ایرانی از کدوم کامپایلر استفاده می کنند؟
از همه دوستان خواهشمندیم وقتی نظر شان را دادند علت انتخاب این کامپایلر را بگویند
با تشکر

SEZAR.CO
یک شنبه 10 دی 1391, 14:06 عصر
شرمنده منظور از گزینه آخر سایرد موارد است

KING AMIN
سه شنبه 12 دی 1391, 16:54 عصر
واقعا نسبت به سایر بجز بیسکام راحت تره(رابط کاربری ، ابزارو.........
در ضمن کب اموزشی بیشتری داره

shahin bahari
سه شنبه 12 دی 1391, 22:13 عصر
avr studio فقط تا نسخه 5 بود و وقتی 6 اومد اسمش atmel studio شد چون یه سری از آرم ها رو هم ساپورت میکرد.
از نسخه 5 به بعد زبون سی و سی پلاس پلاس رو هم اضافه کرد که این ترکیب به نظر من خیلی مناسب است.

mehran901
چهارشنبه 13 دی 1391, 11:58 صبح
Bascom_AVR کامپایلری ، ساده و درعین حال قدرتمند هست که هرگونه برنامه ای رو میشه توسط اون برای میکرو نوشت مسئله مهم رفرنس های خوبی هست که درموردش وجود داره و کتاب خونه های زیاد برای کار با انواع ال سی دی و ... که در هر نسخه با افزایش کتاب خونه ها کار رو واسه کاربراش راحت تر حرفه ای تر و سریع تر می کنه ...
با این حال که به بسکام رای دادم ولی کدویژن هم خیلی کامپایلر قدرتمندی هست که طرفدارای خاص خودشو مخصوصا از طریق ویزاردش جذب می کنه ، کامپایلر کیل هم واسه برنامه نویسی میکرو های آرم ( زبان سی هست ) کامپایلر قدرتمندی به حساب میاد ....

SEZAR.CO
یک شنبه 17 دی 1391, 19:55 عصر
ساده
در این مورد هیج بحثی نیست(خود من ایتدا ازکیو بیسیک و ویژوال بیسیک برای شروع برنامه نویس استفاده میکردم(بخاطر فهم راحت تر))

قدرتمند
در بعضی مواقع با شما مخالفم
علت موافقتم:بیسکام یه ide می باشد ، یعنی برنامه های دیگری از قبیل پروگرمر،شبیه ساز،ارتباط با شبکه(IP/TCP)و....بوده و به کاربران اجازه می دهد توی یک محیط توسعه یافته فشرده کد نویسی کرده،شبیه سازی کرده . کد هگزش کند
علت مخالفم:همه قبول داریم کلا بیسیک ها فقط بدردآموزش می خوره و برای کارای متوسط و متوسط رو به بالا کم میاره
با تشکر

farzadsw
جمعه 22 دی 1391, 00:00 صبح
به دوستان توصیه می کنم اگر دنبال کار جدی هستید، برید سراغ AVRStudio یا winAVR ، اگر هم به دنیال آسایش و امکانات هستید، اول Arduino، بعد codevision و بعد MikroC . سعی کنید طرف زبان Basic نرید، عاقبت نداره.
یسری کامپایلر دیگه هم هست که تقریبا هیچ مزیت خاصی نسبت به قبلی ها نداره، مثل IAR.

SEZAR.CO
جمعه 22 دی 1391, 12:36 عصر
با عرض سلام
اخه مشکل اینه که منابع اموزشی کمی برای این دو وجود دارد
اگه منبعی می شناسید معرفی کنید
نظرتون درباره ی کد ویژن چیه

farzadsw
جمعه 22 دی 1391, 14:09 عصر
همه اینها منبع آموزشی انگلیسی دارند ولی بعضی ها پراکنده است (مثل winAVR) و بعضی ها متمرکز تر (مثل Arduino و هلپ MikroC). ولی اگه منبع فارسی میخواید، همون کد ویژن از بقیه بهتره.
کدویژن برای ما که پول نرم افزار نمی دیم گزینه مناسبی هست ولی اطلاعات انگلیسی در موردش تو اینترنت کمتره (پیدا کردن مثالهای متنوع تر مشکله).

hamid-nic
جمعه 22 دی 1391, 15:14 عصر
به دوستان توصیه می کنم اگر دنبال کار جدی هستید، برید سراغ AVRStudio یا winAVR ، اگر هم به دنیال آسایش و امکانات هستید، اول Arduino، بعد codevision و بعد MikroC
سلام آقا فرزاد عزیز
میشه علت این مواردی که گفتید را توضیح بدهید ؟ منظورم اینه چرا AVRStudio و WinAVR را اول لیست آوردید مگر codevision چی کم داره یا AVRStudio چه مزیت های بهتری داره .
صرفاً منظورم با زبان C هست و اصلاً کاری به بیسیک و کارهای آماتور نداریم . جنبه ی حرفه ای و صنعتی کار منظورمه .

farzadsw
جمعه 22 دی 1391, 18:31 عصر
با توجه به تجربیات بنده، استفاده از AVR/Atmel Studio , winAVR (در واقع یه چیز هستند) نسبت به کدویژن این مزیت ها رو داره:
1.رایگان هست. این مورد برای ما ممکنه زیاد مهم نباشه ولی غیر مستقیم در سایر موارد تاثیر داره.
2.مثالها، پروژه ها و آموزشهای بسیار بیشتر برای این محیطها وجود داره که بدون تغییر حتی یک خط میشه به سادگی ازشون استفاده کرد.
3.کامپایلر GCC نسبت به کامپایلر های دیگه بیشتر روش کار شده و از نظر امکانات، بهینه بودن و قابل اطمینان بودن( باگ کمتر، خصوصا در بهینه سازی) نسبت به کامپایلر کدویژن برتری داره. البته مطمئن نیستم، شاید کدویژن هم از gcc استفاده میکنه(!؟).
4. آشنایی با GCC میتونه تو سایر زمینه ها هم کمکتون کنه، مثل کامپایلر های ARM و برنامه نویسی برای LINUX.
5. GCC کراس پلتفورم هست و میتونید هم توی ویندوز، هم تو مک و هم تو لینوکس ازش استفاده کنید (اینم باز ممکنه زیاد برای ما مهم نباشه)
6. استفاده از IDE های متنوع با قابلیت های مفیدی مثل اتو کامپلیت
7. کد نویسی به زبات C++ مثل محیط Arduino
8. آشتی با دیتا شیت! (کد ویزارد در عین مفید بودنش آدم رو بد عادت میکنه)

البته این رو هم بگم که من با کدویژن خصومتی ندارم و هنوز هم بعضی وقت ها برای تست سریع یک سخت افزار ازش استفاده میکنم ولی توکارهایی که حجم کد و تعداد کتابخونه های مورد نیاز بیشتر می شه ترجیه میدم از AVRStudio یا حتی Arduino (علی رقم ادیتور داغنوش) استفاده کنم.
کد ویژن رو بیشتر باید با MikroC مقایسه کرد، برای من خیلی سخته بگم کدومشون بهترن ولی مطمئنم اگه میکروسی رو امتحان کنید شما هم ازش خوشتون میاد.

SEZAR.CO
جمعه 22 دی 1391, 19:14 عصر
با عرض سلام
میشه چند لنک اموزشی برای اتمل استودیو معرفی کنید
با تشکر

Borland.C
جمعه 22 دی 1391, 19:22 عصر
به دوستان توصیه می کنم اگر دنبال کار جدی هستید، برید سراغ AVRStudio یا winAVR ، اگر هم به دنیال آسایش و امکانات هستید، اول Arduino، بعد codevision و بعد MikroC . سعی کنید طرف زبان Basic نرید، عاقبت نداره.
یسری کامپایلر دیگه هم هست که تقریبا هیچ مزیت خاصی نسبت به قبلی ها نداره، مثل IAR.
خودم از code.v و microC استفاده میکنم.به شخصه MicroC رو بیشتر می پسندم.تا حالا تست دقیق نکردم اما احساس می کنم برنامه هایی که با MicroC مینویسم به مراتب سریعتر از Code.V هستند.میکرو هم رو برنامه های مشابه کمتر هنگ می کنه!شاید قلق Code.V رو کامل نمی دونم.شاید

farzadsw
شنبه 23 دی 1391, 00:07 صبح
با عرض سلام
میشه چند لنک اموزشی برای اتمل استودیو معرفی کنید
با تشکر
کافی هست atmel studio 6 tutorial رو جستجو کنید.
به عنوان مثال این لینک (http://maxembedded.com/2012/06/25/using-atmel-studio-6/) و این لینک (http://www.avr-tutorials.com/avr-studio-6/avr-studio-6)آموزش اولیه رو دادن

hamid-nic
شنبه 23 دی 1391, 13:13 عصر
خیلی ممنون آقا فرزاد از توضیحات کاملتون
حتماً AVRStudio را تجربه خواهم کرد .

KING AMIN
شنبه 23 دی 1391, 16:36 عصر
فقط یه سوال تو اتمل استودیو
اگه بخوای بگی پایه 0 پرت دی چی باید بنویسی
شرمننده سوالم پچه گانست

KING AMIN
یک شنبه 24 دی 1391, 19:44 عصر
کسی نیست کمکی به ما کنه

mehran901
دوشنبه 25 دی 1391, 07:54 صبح
سلام آقا فرزاد عزیز
میشه علت این مواردی که گفتید را توضیح بدهید ؟ منظورم اینه چرا AVRStudio و WinAVR را اول لیست آوردید مگر codevision چی کم داره یا AVRStudio چه مزیت های بهتری داره .
صرفاً منظورم با زبان C هست و اصلاً کاری به بیسیک و کارهای آماتور نداریم . جنبه ی حرفه ای و صنعتی کار منظورمه .
"کاری به بیسیک و کارهای آماتور نداریم"
گفتم بد نیست ی مطلبی عرض کنم ! دوست حرفه ای! که فکر میکنید همه چیز زبان برنامه نویسی هست! باید خدمتتون عرض کنم بسیاری از پروژه های صنعتی ( و البته حرفه ای ، بستگی به تعریف حرفه ای هم داره ولی ... )رو هم میشه با همون بیسیک و کامپایلر نه چندان عالی bascom یا ... انجام داد فقط فرد باید به توانایی ها و اطلاعات خودش اعتماد داشته باشه تا حرف من رو بپذیره!

البته قبول دارم سرعت کدهای اجرایی که توسط C نوشته میشه به نظر تا حدی بیشتر میرسه ...ولی نمی تونیم این موارد رو تنها ملاک خودمون از قضاوت راجب زبان های مختلف قرار بدیم ، از طرفی زبان برنامه نویسی وسیله است و خلاقیت برنامه نویس یک اصل !

موفق باشین

SEZAR.CO
دوشنبه 25 دی 1391, 17:32 عصر
دوستان متاسفانه ایم بیسیک vb,...,qbasic بد درفته شاید این بخاطر وجود رقبایی برای این زبون و یا بخاطر احتی بیش از اندازش و....
ولی به هر حال به همه دوستان یاد گیری سی را پیشنهاد می کنم

KING AMIN
دوشنبه 25 دی 1391, 17:51 عصر
کسی نیست مشکل مارا حل کند

SEZAR.CO
دوشنبه 25 دی 1391, 19:07 عصر
دوست عزیز فکر کنم جواب مشکلت را توی تچزیه و تحلیل کد که خودت ایجاد کردی گرفته باشی

hamid-nic
جمعه 29 دی 1391, 00:59 صبح
"کاری به بیسیک و کارهای آماتور نداریم"
گفتم بد نیست ی مطلبی عرض کنم ! دوست حرفه ای! که فکر میکنید همه چیز زبان برنامه نویسی هست! باید خدمتتون عرض کنم بسیاری از پروژه های صنعتی ( و البته حرفه ای ، بستگی به تعریف حرفه ای هم داره ولی ... )رو هم میشه با همون بیسیک و کامپایلر نه چندان عالی bascom یا ... انجام داد فقط فرد باید به توانایی ها و اطلاعات خودش اعتماد داشته باشه تا حرف من رو بپذیره!

البته قبول دارم سرعت کدهای اجرایی که توسط C نوشته میشه به نظر تا حدی بیشتر میرسه ...ولی نمی تونیم این موارد رو تنها ملاک خودمون از قضاوت راجب زبان های مختلف قرار بدیم ، از طرفی زبان برنامه نویسی وسیله است و خلاقیت برنامه نویس یک اصل !

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

من قصدم توهین و بی احترامی به زبان بیسیک و شما و دوستانی که طرفدار پروپاقرص این زبان و کامپایلر هستند نبود . من خودم هم با همین بیسیک و کامپایلر شروع کردم و الان قصد ندارم اون را به باد انتقاد بگیرم .
اگر بخواهیم از اول شروع کنیم به یادگیری زبان برنامه نویسی برای میکرو دو گزینه عمده و شناخته شده روبروی ماست یکی زبان بیسیک که کامپایلر معروف Bascome را داره و یکی زبان C که کامپایلر های متعددی از جمله CodeVision داره .
خوب کار با بیسیک و بسکام خیلی ساده است که خیلی زود میشه اون را یاد گرفت و در مقابل زبان c مقداری مشکل و وقت بیشتری برای یادگیری نیاز داره .
در یک پروژه ، بسکام شما را زود به نتیجه می رسونه خوب این بد نیست اما دیگر درک کاملی از سخت افزار نخواهید داشت نمی دونید که دقیقاً چه اتفاقی در سخت افزار افتاده یا در حال افتادن است
وقتی به طرف پروژه های بزرگتر و صنعتی تری برید نیاز شدید پیدا می کنید که درک کاملی از ساختار سخت افزار مربوطه داشته باشید و دقیقا باید بدونید که چه اتفاقی باید بر سر سخت افزار بیاد .
در بسکام شما یه خطی می نویسید و جواب می گیرید اما هیچ موقع نمی توانید کاری که اتفاق افتاده را متوجه بشید .
شما هر چه قدر هم به خودتون و اطلاعاتتون اعتماد داشته باشید در عمل چیز دیگری را خواهید دید .
در انجام پروژه های بزرگ در بسکام شما اینقدر محدود می شوید که مجبور به مهاجرت از اون می شود هرچه قدر هم که به اون دلبسته باشید .
شما اگر از همون اول سختی های یادگیری زبان c را تحمل کنید برای انجام پروژه ، دیگر ساختار سخت افزار را درک می کنید می فهمید داره چه اتفاقی می افته . یعنی یادگیری سخت افزار با کدنویسی .
شما وقتی پا به دنیای C می گذارید وقعاً دیدتون نسبت به مسائل و حل آنها خیلی متفاوت و کاربردی تر میشه یه جورایی دیدتون را باز می کنه .
سوای از ناپایداری ها و کمبودهای کتابخانه ای ، حجم زیاد کد و سرعت کم اجرا که بیسیک و بسکام در انجام پروژه های بزرگ و صنعتی داره نظر شما به چند نکته ی دیگر هم جلب می کنم :
در برتری زبان C نسبت به Basic هیچ شکی نیست . زبان C یک زبان ساخت یافته است و Basic نه . (مزیت این را هم که حتماً می دونید)
اکثر نرم افزار های بزرگ دنیا با خانواده C نوشته شده حتی بزرگترین پروژه ها در سیستم های Embedded با خانواده ی C نوشته شده .
اساس سیستم عامل های بلا درنگ که در میکرو های 32 بیت استفاده از آنها نا گریز است توسط خانواده ی C نگارش می شود. و میکروهای ARM را که اصلا جای خود داره .
آیا می دانید نگاه معماری سخت افزار دنیا در زمان حال و آینده بر اساس زبان C است .

حالا من یک شخصی که اصلاً چیزی نمی دونم و کلمه ی حرفه ای و صنعتی را به اشتباه بکار بردم شما که تعریف دقیق و قشنگی از حرفه ای دارید برید از چند تا حرفه ای که می شناسید سوال کنید بگید کدوم بهتره ؟ با کدوم بهتر کار می کنند ؟
نمی دونم در چه مقطعی از تحصیلات و کار هستید اما مطمئناً از هر 10 نفر خبره و کاربلد که شما ازشون سوال کنید حداقل 8 نفر اونها زبان C را برای کارهای حرفه ای و صنعتی پیشنهاد می کنند .
شما اگر یه نگاهی به نظر سنجی همین تاپیک هم بکنید که چند نفری هم بیشتر رای ندادند که البته خود من هم هنوز رای ندادم متوجه این قضیه خواهید شد .

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

SEZAR.CO
جمعه 29 دی 1391, 11:34 صبح
با عرض سلان
بارها کفتم و بازهم می گویم
کسی که می خواهد موفق باشد مجبور است هر دو را یاد گیرد

mehran901
جمعه 29 دی 1391, 12:22 عصر
اولا که این طرز صحبت کردن اصلاً خوب نیست چه خوب بود این مطلب را خیلی بهتر می گفتید .

من قصدم توهین و بی احترامی به زبان بیسیک و شما و دوستانی که طرفدار پروپاقرص این زبان و کامپایلر هستند نبود . من خودم هم با همین بیسیک و کامپایلر شروع کردم و الان قصد ندارم اون را به باد انتقاد بگیرم .
اگر بخواهیم از اول شروع کنیم به یادگیری زبان برنامه نویسی برای میکرو دو گزینه عمده و شناخته شده روبروی ماست یکی زبان بیسیک که کامپایلر معروف Bascome را داره و یکی زبان C که کامپایلر های متعددی از جمله CodeVision داره .
خوب کار با بیسیک و بسکام خیلی ساده است که خیلی زود میشه اون را یاد گرفت و در مقابل زبان c مقداری مشکل و وقت بیشتری برای یادگیری نیاز داره .
در یک پروژه ، بسکام شما را زود به نتیجه می رسونه خوب این بد نیست اما دیگر درک کاملی از سخت افزار نخواهید داشت نمی دونید که دقیقاً چه اتفاقی در سخت افزار افتاده یا در حال افتادن است
وقتی به طرف پروژه های بزرگتر و صنعتی تری برید نیاز شدید پیدا می کنید که درک کاملی از ساختار سخت افزار مربوطه داشته باشید و دقیقا باید بدونید که چه اتفاقی باید بر سر سخت افزار بیاد .
در بسکام شما یه خطی می نویسید و جواب می گیرید اما هیچ موقع نمی توانید کاری که اتفاق افتاده را متوجه بشید .
شما هر چه قدر هم به خودتون و اطلاعاتتون اعتماد داشته باشید در عمل چیز دیگری را خواهید دید .
در انجام پروژه های بزرگ در بسکام شما اینقدر محدود می شوید که مجبور به مهاجرت از اون می شود هرچه قدر هم که به اون دلبسته باشید .
شما اگر از همون اول سختی های یادگیری زبان c را تحمل کنید برای انجام پروژه ، دیگر ساختار سخت افزار را درک می کنید می فهمید داره چه اتفاقی می افته . یعنی یادگیری سخت افزار با کدنویسی .
شما وقتی پا به دنیای C می گذارید وقعاً دیدتون نسبت به مسائل و حل آنها خیلی متفاوت و کاربردی تر میشه یه جورایی دیدتون را باز می کنه .
سوای از ناپایداری ها و کمبودهای کتابخانه ای ، حجم زیاد کد و سرعت کم اجرا که بیسیک و بسکام در انجام پروژه های بزرگ و صنعتی داره نظر شما به چند نکته ی دیگر هم جلب می کنم :
در برتری زبان C نسبت به Basic هیچ شکی نیست . زبان C یک زبان ساخت یافته است و Basic نه . (مزیت این را هم که حتماً می دونید)
اکثر نرم افزار های بزرگ دنیا با خانواده C نوشته شده حتی بزرگترین پروژه ها در سیستم های Embedded با خانواده ی C نوشته شده .
اساس سیستم عامل های بلا درنگ که در میکرو های 32 بیت استفاده از آنها نا گریز است توسط خانواده ی C نگارش می شود. و میکروهای ARM را که اصلا جای خود داره .
آیا می دانید نگاه معماری سخت افزار دنیا در زمان حال و آینده بر اساس زبان C است .

حالا من یک شخصی که اصلاً چیزی نمی دونم و کلمه ی حرفه ای و صنعتی را به اشتباه بکار بردم شما که تعریف دقیق و قشنگی از حرفه ای دارید برید از چند تا حرفه ای که می شناسید سوال کنید بگید کدوم بهتره ؟ با کدوم بهتر کار می کنند ؟
نمی دونم در چه مقطعی از تحصیلات و کار هستید اما مطمئناً از هر 10 نفر خبره و کاربلد که شما ازشون سوال کنید حداقل 8 نفر اونها زبان C را برای کارهای حرفه ای و صنعتی پیشنهاد می کنند .
شما اگر یه نگاهی به نظر سنجی همین تاپیک هم بکنید که چند نفری هم بیشتر رای ندادند که البته خود من هم هنوز رای ندادم متوجه این قضیه خواهید شد .

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

ممنون و معذرت خواهی اگه لحن صحبتم مناسب نبوده ، دانشجوی الکترونیک هستم و در کنار مباحث مختلفی که تدریس میکنم C++‎ هم جز مباحثی هست که تدریس دارم و کاملا درمورد ساخت یافتگی در سی نسبت به بیسیک با نظر شما موافقم ، معماری RISC با زبان c هماهنگ هست و بعد از اسمبلی تراشه های avr بهترین مدیریت و کارایی رو با سی دارن....تقریبا 2 سال پیش بود که واسه برنامه نویسی تراشه های Arm از کامپایلر keil و زبان سی استفاده میکردم کاملا بر قدرتش واقف شدم ، ولی خب تعصب رو زبان بیسیک باعث شد نسبت به اون پست واکنش نشون بدم :|



با حرف دوستمون SEZAR.co کاملا موافقم ، کسانی که در زمینه الکترونیک فعالیت دارند به نظر من علاوه بر بیسیک و سی در سیستم های Embedded باید برنامه نویسی سیستمی و کامپیوتر رو هم به خوبی بدونن

shahin bahari
جمعه 29 دی 1391, 12:56 عصر
کسی نیست مشکل مارا حل کند
دوست عزیز سوالتون ربطی به موضوع نداره آخه!
برای ست کردن پین 0 پورت D باید بنویسید:
PORTD |=(1<<0);
برای ریست کردن هم:
PORTD &= ~(1<<0);

SEZAR.CO
جمعه 29 دی 1391, 22:03 عصر
شما منبعی سراغ دارید