دوستان ضمن شرکت در نظر سنجی اگر نکته خاصی دارند مطرح کنند.
codevision
bascom
CodeVision
Bascom
دوستان ضمن شرکت در نظر سنجی اگر نکته خاصی دارند مطرح کنند.
codevision
bascom
سلام
دعوا بین کامیپالر ها هیچ وقت تموم نمیشه و ما همیشه کلی مجروح و... داریم . در زیر من با توجه به تجربه ای که در این چند سال در استفاده از هر دو کامپایلر داشتم ، مقایسه ای اجمالی رو در زیر اوردم :
مزیت ها و معایب :
بسکام :
یادگیری ساده ، محیط حرفه ای ، شبیه ساز داخلی ، پشتیبانی از انواع و اقسام لوازم جانبی از کیپد 4*4 تا رابط های rfid و شبکه. به طوری که کاربر نیازی به دونستن طرز کار این لوازم برای راه اندازیشون داره .
کدویژن :
یادگیری تقریبا دشوار ، محیط حرفه ای ، نداشتن کتابخانه های کامل ، نیاز به دانستن طرز کار سخت افزار برای راه اندازی ان . دردسترس بودن اخرین ورژن ، کمبود منابع اموزشی نسبت به بسکام ، کم بودن کاربران نسبت به بسکام و ....
مهم ترین مزیتی که کد ویژن نسبت به بسکام داره ، استفاده از زبان c هست ، اگه شما زبان c رو کامل یادبگیرید به سادگی میتونید به سراغ دیگر میکرو کنترلر ها برید و با اونا کار کنید .
تقریبا 80 درصد از دستورات c در کامپیالر های c مشترک هست .
همیشه برای یک میکرو کنترلر جدید ، اول کامپایلر اسمبلی و c و بعد از گذشت چند سال کامپیالر بیسیک ارائه میشه ، شایدم اصلا ارائه نشه .
مزیت دوم در گیر شدن با سخت افزار هست ، این میتونه دید شما رو باز تر کنه و به دانش شما رو بیشتر کنه . توی بیسکام برای راه اندازی adc کافیه بنویسید config adc و.... اما توی c باید ریجستر ها رو راه اندازی کنید .
در صورتی که نمیخوایید با سخت افزار در گیر بشید و فقط میخوایید برنامه نویس باشید . با بسیکام کار کنید .
همچنین اگر میخوایید فقط در حیطه ی avr بمونید و تا ابد با همین میکرو کنترلر کار کنید ، بیخودی وقت خودتون رو صرف یادگیری زبان c نکنید .
اما اگه دوست دارید الاوه بریک برنامه نویس، یک طراح هم باشید و قصد دارید با دانش روز پیش برید و با میکرو کنترلر ای جدید کار کنید .
از همین الان با c شروع به کار کنید .
ممکنه در قدم اول یادگیری زبان c یه مقدار سخت به نظر بیاد اما با سعی و تلاش همه چیز حل میشه .
سلام
با احترام به نظر آقای 1Nafar باید بگم که میشه هم بسکام دونست و هم با سخت افزارها آشنا شد. درسته که بسکام برای همه ی امکانات جانبی AVR کتابخونه و دستورات صریح داره و نیازی نیست که کاربر با نحوه ی کارکرد سخت افزاری امکانات آشنا باشه ولی در نهایت این خود کاربر هست که می تونه انتخاب کنه که کار با اصول این سخت افزارها رو یاد بگیره یا نه.
به نظر من یه مهندس الکترونیک بیشتر از اینکه وقتشو صرف یادگیری زبان برنامه نویسی C کنه ، بهتره زمینه های مختلف الکترونیک رو پیگیری کنه. یه مهندس الکترونیک مهندس الکترونیکه و یه مهندس نرم افزار مهندس نرم افزار! بهر حال در پروژه های بزرگ و پیچیده هیچ کدوم از این دو مهندس نمی تونن به تنهایی از عهده ی همه چیز بر بیان بلکه حتما باید در کنار هم باشن.
از طرفی دونستن زبان بسکام در یادگیری زبان VB هم خیلی موثره و کاربر با این زبان خیلی راحتتره تا زبان Visual C ، زبان C خیلی قوی هست ولی به همون اندازه هم کار کردن باهاش وقت گیره و این عذاب آوره.
ضمن اینکه استاد عزیز خودم که فوق لیسانس بیوالکترونیک از خواجه نصیر هستن با کامپایلر بسکام کار می کنن و تا حالا چندین پروژه ی مهم رو با همین کامپایلر و VB به سرانجام رسوندن و به ما هم همین زبان رو درس دادن.
البته این به سلیقه ی اشخاص بستگی داره ، به قول دوست خوب و موفقمون آقای 1Nafar این دعوا هیچ وقت تموم نمیشه. مثل دعوای AVR و PIC.
ویرایش توسط morteza_rk : 31-01-2010 در ساعت 22:44
.
دوستان به نکات جالی اشاره کردند امید وارم بقیه کاربران هم تو این بحث شرکت کنند
با اجازه اساتید،
بنظر من c برای کسانی یا مواقعی بهتره که بخایم خیلی نزدیک با پردازنده ( میکرو کنترولر ها یا میکرو پروسسورها) کار کنیم و در عین حال از اسمبلی هم استفاده نکنیم؛ در ضمن اینکه بنظر من برنامه نویسی با c نسبت به بیسیک یا مثلا پاسکال خیلی شیرین تره و انعطاف پذیری اونم بهتره (البته این یه نظر شخصیه).
و بیسیک برای کسانی بهتره که نخوان از سخت افزار و تنظیمات و دردسرهای اون عذاب بکشن و فقط سریع به نتیجه برسن.
به نظر من باید به نوع کار و پروژه ای که می خوهیم بسازیم نگاه کرد. خیلی از کارها رو با سی می شه خیلی بهتر و راحت تر انجام داد و خیلی جاها کتابخونه های بیسیک خیلی کمک کننده هستند. به نظر من از همشون در مواقع لزوم می شه استفاده کرد و کسی نمی گه با چی نوشتی. اونها کار کردن دستگاه رو می خواهند.
اگه میخواید به طوری جدی و حرفه ای (حرفه ای هم از لحاظ مهارت و هم از لحاظ حرفه و شغل )با میکروکنترلر کار کنید ، C
اگه به صورت تفننی ، سرگرمی ، یا در حد کارای کوچیک با میکرو سرو کار دارید و کار اصلی شما چیز دیگس ، basic
خداییش تو vb من وقتی قسمت کد نویس رو دیدم کف کردم
4 خط بود باور می کنید
وقتی دیدم تو vc 6++ من چقد عذاب میکشم برا یک متغییر پاک کردن
که سه تا کلاس داره چند ریجستری
بیچاره میشی
وقتی vb 6 دیدم با 4 خط برنامه تموم بود
با اینکه در رابطه با بیسیک متعصبم ولی تصمیم گرفتم vb 6 رو یاد بگیرم
ولی در رابطه avr من c رو ترجیح میدم
ولی فکر کنیداگه کد ویژن با امکانات بیسکام بود یعنی
AVR
نه
َaVr
می ترکوند
ولی با این حال کاربران سی باید دشواری هایی تحمل کنند که البته نابرده رنج گنج میسر نمی گردد
تمام.
من خودم با بسكام كار مي كنم ولي چند تا تا مشكل داره:
1:كد هگز خروجي بهينه نشده و ممكنه كه دوتا برنامه مشابه يكي با سي و يكي با بسكام، كد هكز سي از لحاظ حجمي نصف بسكام بشه
2:توابع آماده اي كه در اختيار ما قرار گذاشته انعطاف پذير نيستش و شما حتما بايد از لحاظ سخت افزار و نرم افزار پيرو توابع آماده باشيد به عنوان مثال من وقتي كه مي خواستم lcd گرافيكي به avr وصل كنم ،زماني كه برنامشو مي خواستم با بسكام بنويسم ديدم كه باس ديتا lcd حتما بايد به يكي از پورت ها وصل بشه يعني جوري نبود كه بشه 4 بيت رو به يك پورت وصل كنم و 4 بيت ديگه ي اونو به يك پورت ديگه وصل كنم
3:در بسكام امكان نداره كه اعمال رياضي بيش از دو متغير و يا عدد انجام بشه مثل: f = a * 1024 + p
4:دو تا برنامه مشابه با سي و بسكام كه نوشته شده باشند مطمئنا برنامه اي كه با سي نوشته شده باشه به دليل اين كه به صورت خاص فقط براي مقصود ما نوشته شده سرعت پردازش بالاتر خواهد بود
بنابراين بايد با اين دلايل موجه بايد آدم قانع بشه كه اگر سي رو ياد بگيره احتمالا تا چندين سال ديگه هم بدرد بخوره ولي بسكام اين طور نيست و واقعا منم مجبور شدم كه سراغ سي برم مخصوصا كه براي آرم فعلا كامپايلر بيسيك كرك شده نيومده
در ضمن مسئله فقط بسكام يا كدويژن نيست، زبان سي يك برنامه ي همه جانبه و فراگير هستش كه در همه ي زمينه ها كاربرد داره البته همون تور كه زبان اسبلي هم كم كم داره كاملا منسوخ ميشه براي سي هم و بيسيك هم همين اتفاق مي افته بنابراين بايد منتظر زباني جديد كه قابليت هاي بيسيك و سي رو با هم داره باشيم
ویرایش توسط armstk : 04-02-2010 در ساعت 08:19
میکروکنترلر STM32103-RBT6 بطور کامل راه اندازی شد !!!
مرحله بعدی اتصال TFT 3.2 به میکرو و بوت کردن UC-OS II + GUI !!!
.
سلام
این وسط یه مشکل دیگه هم وجود داره و اون خود میکرو کنترلر avr هست .
این میکرو در برابر نویز خیلی ضعیف هست و مدام هنگ میکنه . اما میکرو کنترلر های مثل pic یا arm مصنونیت بالای در برابر نویز دارن و اغلب کامپایلر های اونا c هست .
مهندس غیر از این قسمت تقریبا بقیه نوشته های شما رو قبول دارم.
اسمبلی حالا حالا ها منسوخ نمیشه، امکان نداره شما پردازشگر یا کنترلری رو پیگیری کنید تا تهش برید به اسمبلی نرسید، درسته که شاید 90 درصد برنامه نویس ها از C استفاده میکنند اما همونها وابسته هستند به برنامه نویسان اسمبلی که کامپایلر C درست کردند و خودشون شاید خبر نداشته باشند، اگر اسمبلی نباشه نه C هست نه بیسیک. این فرمایش شما مثل این میمونه که بگیم آی سی های تقویت کننده صوت خیلی عالی اومده که میشه باهاش تقویت کننده های خیلی خوب درست کرد پس چون دیگه کسی با ترانزیستور تقویت کننده درست نمیکنه میشه گفت دیگه ترانزیستور منسوخ شده!!
نتیجه بحث اینکه هرچیزی که خیلی کم استفاده میشه دلیل بر منسوخ شدنش نیست
وسط همین نکته شما یک نکته دیگه هم وجود داره و اون این هست که AVR به خاطر معماری میکروکنترلی در ظاهر جالب و در باطن نه چندان جالبش کامپایلر C خیلی خوبی نمیشه براش نوشت ( به نسبت عرض میکنم ) نظر شخصی من این هست که کامپایلر Codevision نسبت به چیزی که باید باشه اصلا جالب نیست و دلیلش هم معماری AVR هست که نرم افزار و سخت افزارش رو خوب با هم جفت نمیکنه. من برنامه های مشابه رو با تکنیک های خاص توی Codevision و PICC18 نوشتم به طور کاملا قابل احساس ضعف کدویژن نسبت به PICC18 مشخص میشه.
اگه مثال بزنید خوب میشه
من فکر میکنم بسکام از مزخرفترین برنامه های موجود روی زمینه!
شما فکر کنید وقتی میزنید
sqr 4بهتون مثلا 1.5 میده! ولی وقتی میزنید
0.5^4بهتون 2 میده!
برنامه های سنگینی که با بسکام نوشتم در خیلی موارد قاطی دارند واقعا زبان ضعیفی است.
البته با اشکالاتی که از بسکام فهمیدم تونستم مشکلشون رو حل کنم.
برنامه نویسهای این زبان کلی وقت باید بزارند تا اشکالات خود بسکام رو بفهمند من که خودم میخوام سراغ c برم دیگه از بسکام خسته شدم. در ضمن codevision ویژوال است.
خنده بر لب میزنم تا کس نداند راز من.........ورنه این دنیا که ما دیدیم خندیدن نداشت
وبلاگ شخصی
n340 جان اگر با بنده بودید باید بگم که هیچ علاقه ای به دنبال کردن این مقایسه ها ندارم چراکه نه فرصتش رو دارم نه اینکه متاسفانه کسانی که عمری با C و بیسیک کار کردند به این راحتی ها متوجه میشند که در معماری پردازشگری چی ضعف حساب میشه و چی مزیت، و در معماری میکروکنترلری به همین ترتیب. ظاهر قضیه ساده هست اما باطن خیلی پیچیده تر از این هست که با چندتا مثال مطلب رو جا بندازم.
نمیخوام بگم چیزهایی که من میدونم دیگران نمیدونند و ادعایی هم ندارم، این مطالبی که نوشتم هم نظر شخصی خودم بود و اصلا برام مهم نیست که دیگران قبول دارند یا خیر، من کار خودم رو میکنم و دوستان هم کار خودشون رو:D
هر چيزي بالاخره قديمي ميشه و ديگه استفاده نميشه چون كه مدل هاي جديد تري از اون مياد و ديگه كسي سراغه چيز هاي قديمي نميره مثل لامپ، اولش خيلي استفاده مي شد ولي وقتي ترانزيستور اومد ديگه از اون استفاده نميشه گرچه در لامپ هاي crt تلويزيون استفاده مي شه كه اونم الان lcd وled اومده كه ديگه فقط در مواردي خيلي ضروري مثل بعضي فرستنده هاي راديويي و بهضي از آمپلي فاير ها استفاده ميشه كه بازهم جايگزين اون ها مثل ماسفت هاي قدرت و ترانزيستور هاي فركانس بالا و با توان بالا اومده كه از قيمت خيلي پايين تري برخورداره
يه مثال ديگه اينه كه زبان پاسكال يكي از زبان هاي قديمي پس چون كه تو دانشگاهها دارن اونو تدريس مي كنن ديگه پس....
بعدشم قبل از c زبان هايي مثل a و b هم بودند كه ديگه الان به كلي اثري ازشون نيست
میکروکنترلر STM32103-RBT6 بطور کامل راه اندازی شد !!!
مرحله بعدی اتصال TFT 3.2 به میکرو و بوت کردن UC-OS II + GUI !!!
.
اگه ممکنه 1-2 مورد از نرم افزاری که تو پروژه تون استفاده کردید مثال بزنید .میشه بفرمایید چرا در حد کارای کوچیک؟
تو شرکت ما همه با بسکام کار میکنیم و هیچ مشکلی نداشتیم پروژه ها مون هم آنچنان کوچیک نیستند !!!!
تازه من شرکتهایی رو میشناسم که الان دارن کل چاه های آب رو مکانیزه میکنن و در اون شرکتها از avr و بسکام استفاده میکنن
در اینکه توی ایران استانداردها خیلی سطح پایین هستن شکی نیست .
این جدول به طور نسبی ، سطح پروژه رو تعیین میکنه:
به عنوان مثال کدوم سازمان میاد reliability یا عمر یه محصول رو چک کنه ؟
اتفاقا ، هسته پردازشی AVR برای اجرای برنامه های C بهینه شده ! (اینو از خودم نمیگم)وسط همین نکته شما یک نکته دیگه هم وجود داره و اون این هست که AVR به خاطر معماری میکروکنترلی در ظاهر جالب و در باطن نه چندان جالبش کامپایلر C خیلی خوبی نمیشه براش نوشت ( به نسبت عرض میکنم ) نظر شخصی من این هست که کامپایلر Codevision نسبت به چیزی که باید باشه اصلا جالب نیست و دلیلش هم معماری AVR هست که نرم افزار و سخت افزارش رو خوب با هم جفت نمیکنه. من برنامه های مشابه رو با تکنیک های خاص توی Codevision و PICC18 نوشتم به طور کاملا قابل احساس ضعف کدویژن نسبت به PICC18 مشخص میشه.
ضعف کامپایلر هیچ ربطی به پردازنده نداره ، شما IAR , GCC رو برای AVR امتحان کنید ، میبینید که AVR برای C بهینه شده یا نه !
این از اون حرفا بود ها ، اسمبلی بهینه ترین زبان برنامه نویسی هست و هرگز منسوخ نمیشه !زبان سي يك برنامه ي همه جانبه و فراگير هستش كه در همه ي زمينه ها كاربرد داره البته همون تور كه زبان اسبلي هم كم كم داره كاملا منسوخ ميشه براي سي هم و بيسيك هم همين اتفاق مي افته بنابراين بايد منتظر زباني جديد كه قابليت هاي بيسيك و سي رو با هم داره باشيم
تو برنامه هایی که پرفورمنس خیلی اهمیت داره تنها گزینه اسمبلی هست . جالبه بدونید درایور های اکثر سخت افزار ها با اسمبلی نوشته میشن مثل کارت گرافیک و ...
مشکل اصلی اسمبلی هزینه زیاد استفاده از اون توی پروژه هست . برای همین تو پروژه هایی که پرفورمنس زیاد اهمیت نداره ، (به خاطر کم شدن هزینه ها ) سعی میکنن از اسمبلی استفاده نکنن.
اگر میبینید الان از اسمبلی زیاد استفاده نمیشه به این خاطره که هر روز قدرت پردازش پردازنده ها زیاد و قیمت اونا کم میشه (یعنی بهینه بودنن برنامه کم اهمیت تر میشه)بنابر این در صورتی که هزینه نوشتن برنامه به زیان اسمبلی ، بیشتر از استفاده ی یک پردازنده قویتر تو پروژه باشه از اسمبلی استفاده نمیکنن .
ولی بعضی مواقع هم هست که پرفورمنس از همه چیز مهمتره مثل درایور دستگاه ، پردازشهای سنگین و ... .
خیلی از وقتها هم در کنار c از اسمبلی استفاده میشه .به عنوان مثال توی پردازش سیگنال ، تابع ضرب و توان و .... رو با اسمبلی مینویسن چون تو سرعت خیلی تاثیر داره . اما در کنار اون ممکنه برنامه اصلی با استفاده از C نوشته بشه
دوست عزیزم
شما بدون هیچ تردیدی خیلی شخص با سوادی هستی و واقعا و بدون تعارف میگم که از من و خیلی های دیگه بیشتر می دونی و کار کردی و تجربه داری. ولی این رو که مطرح کردی من حتی یک اثری ازش در حتی فرومهای خارجی ندیدم که نوشته باشه pic از نظر نویز به avr برتری دارد. اما چرا ما روی دستگاههای خارجی اکثرا pic می بینیم؟ این امر به می تونه به قدمت بیشتر این تراشه بر می گرده. کمپانی که طرحش رو با یک محصول جلو می بره نمیاد بخاطر ارائه یک محصول جدید طرحش رو عوض کنه و اصلا منطقی نیست که دوباره از صفر هزینه طراحی بده و با یک تراشه ناشناخته کار کنه. همه ما هم همین طوریم. ما محصول یک شرکت جا افتاده قدیمی رو به یک شرکت جدید، هر چند آن شرکت جدید محصولش بهتر هم باشد ترجیح نمیدیم؟؟
من دوستانی رو می شناسم که خیلی پروژه های صنعتی و ... رو با همین بیسکام و avr پیش بردن و تمام کردند و حرفی هم درش نبود. همه چی هم درش بود از موتور 3 فاز گرفته تا کنتاکتور و .... . خیلی جاها شده که در اثر اتصالی و .. Avr تا حد مرگ داغ کرده و بوی سوختش هم دراومد ولی بازم کار کرد و این رو من تایید می کنم و سر خودم اومد و واقعا بوی سوختش دراومد ولی تست کردم هیچی نشده بود !!! . ما اگه یک نگاهی به بقیه کشورها بکنیم می بینیم که بیشتر ما هستیم که این قدر دعوا سر این چیزها داریم و آنها بیشتر سعی در پیش بردن کار و پیشرفت کردن دارن. واقعا چه سودی از این مباحث عاید ما می شود؟
نمی دونم چرا این دوست عزیز این نظر سنجی رو باز کرد تا یک جنگ جهانی شروع بشه ولی هر کس آزاده که با هر چیز کار کنه و بهترین حرف فکر کنم این باشه که هر کس با هر چی راحته بسم ا... و کارش رو پیش ببره و امیدوارم موفق باشه. هر کامپایلری یک سری معایب و مزایا داره که به نظر من این که بگیم "هر کدام به جای خودش" بهترین حرف باشه.
موفق باشید
ویرایش توسط Hesam1984 : 04-02-2010 در ساعت 23:36