نرم افزار کدویژن یکی از نرم افزارهای مناسب برای شروع کار با میکروکنترلرهای AVR است. نرم افزار کدویژن تنها IDE برای میکروکنترلرهای AVR است که دارای یک تولید کنندۀ کد یا Code Generator است. این تولید کنندۀ کد که CodeWizardAVR نام دارد، می تواند برای تراشه های AVR8 ، AVR8X و XMEGA کد تولید نماید. یکی از قابلیت های نرم افزار کدویژن کتابخانه های آن است. در نرم افزار کدویژن کتابخانه هایی برای راه اندازی LCDهای کاراکتری و LCDهای گرافیکی، پروتکل ارتباطی I2C، آی سی DS1307 و … وجود دارد و کاربرد می تواند با زدن چند تیک در CodeWizardAVR از این کتابخانه ها استفاده کند. با استفاده از نرم افزار کدویژن می توان میکروکنترلر را پروگرام کرد. اگرچه توصیۀ ما برای کدنویسی میکروکنترلرهای AVR، استفاده از نرم افزار Atmel Studio است، ولی برای شروع کار با میکروکنترلرهای AVR نرم افزار کدویژن کافی است. البته می توان برنامۀ نوشته شده در نرم افزار کدویژن را به نرم افزار Atmel Studio منتقل کرد. برای یادگیری انتقال برنامه از نرم افزار کدویژن به نرم افزار اتمل استودیو به نوشتۀ «آموزش Atmel Studio مهاجرت از کدویژن به اتمل استودیو» مراجعه فرمایید. برای آشنایی بیشتر با میکروکنترلرها به نوشتۀ «معرفی میکروکنترلر» مراجعه فرمایید. در این نوشته می خواهیم به آموزش کدویژن و نحوه ساخت پروژه در کدویژن بپردازیم.
فیلم آموزش میکروکنترلرهای AVR مقدماتی
دو روش ایجاد پروژه در نرم افزار CodeVisionAVR
به منظور ایجاد یک محیط برای نوشتن کد به زبان C برای یک میکروکنترلر خاص (بطور مثال میکروکنترلر ATmega128A) در نرم افزار کدویژن میبایست که یک پروژه ایجاد کرد. برای ایجاد پروژه در نرم افزار کدویژن دو روش وجود دارد، یکی با استفاده از امکان CodeWizardAVR و دیگری بودن استفاده از امکان CodeWizardAVR، که در هر دوی این روش ها، اولین قدم مشترک است.
همانند هر نرم افزار مهندسی دیگر، برای ساخت پروژه در نرم افزار کدویژن باید همانند تصویر زیر، در منوی File در بخش New روی Project کلیک کرد.
تصویر 1 – ایجاد پروژه در نرم افزار کدویژن، آغاز ساخت پروژه
پس از انجام این کار در نرم افزار کدویژن، با پنجرۀ Confirm (تصویر 2) روبرو می شویم. پس از این مرحله، ساخت پروژه در نرم افزار کدویژن به دو روش امکان پذیر است که در ادامه بررسی می شوند.
ایجاد پروژه در نرم افزار کدویژن با استفاده از CodeWizardAVR
برای ایجاد پروژه کدویژن با کدویزارد، در پنجرۀ Confirm، عبارت Yes را انتخاب می کنیم. در این پنجره سوال شده که آیا مایل به استفاده از کدویزارد هستید یا خیر. CodeWizardAVR یک محیط گرافیکی در نرم افزار کدویژن است که می توان در آن تنظیماتی رجیسترهای میکروکنترلر را به صورت گرافیکی تغییر داد. که در نهایت این تغییرات به کد C تبدیل شده و به کد ما اضافه می شوند. با استفاده از این قابلیت می توان برای تنظیمات اولیۀ برخی قسمت ها کدنویسی نکرده و از CodeWizardAVR برای تولید این کدها استفاده کرد.
تصویر 2 – ایجاد پروژه در نرم افزار کدویژن با استفاده از کدویزارد
توجه داشته باشید امکان Wizard در برخی نرم افزاهای IDE مثل CodeVisionAVR موجود بوده اما در برخی وجود ندارد. که در این سری در نرم افزاها، امکان Wizard بصورت یک نرم افزار جانبی وجود دارد. بطور مثال نرم افزار Keil یک IDE بدون Wizard است که نرم افزارهای Wizard جانبی مثل CubeMx و یا ARMWizard برای آن وجود دارد.
در قسمت بعد در تصویر زیر خانوادۀ تراشه مورد نظر پرسیده میشود. با توجه به اینکه ما قصد استفاده از تراشه ATmega128a را داریم، گزینه اول را انتخاب میکنیم.
تصویر 3 – انتخاب خانوادۀ تراشۀ مورد نظر در CodeWizardAVR
پس از تایید مرحله قبل، همانطور که در تصویر زیر می بینیم، پنجرۀ CodeWizardAVR باز می شود. در قسمت Chip تراشه مورد استفاده خود که ATmega128A میباشد را می بینیم و می توانیم آن را تغییر دهیم. در بخش های دیگر میتوانیم قسمتهای مختلف را در حالت مورد نظر تنظیم کنیم. به طور مثال فرکانس کاری میکروکنترلر را 8مگاهرتز درنظر بگیریم و یا در قسمت USART0 تنظیمات مربوط به ارتباط سریال USART شماره صفر را انجام دهیم.
تصویر 4 – پنجرۀ CodeWizardAVR
پس از اعمال تغییرات، به منظور ساخت و ذخیرۀ پروژه، در منوی Program روی Generate, Save and Exit کلیک می کنیم.
تصویر 5 – ساخت فایل های پروژه در نرم افزار کدویژن با استفاده از کدویزارد
پس از آن پنجرۀ زیر ظاهر شده که میبایست در آن نام و محل ذخیرۀ پروژه را وارد کنیم.
تصویر 6 – تولید فایل های پروژه نرم افزار کدویژن و ذخیرۀ آنها
برای ذخیرۀ پروژه باید چهار نکتۀ زیر را درنظر داشته باشیم:
- برای ذخیرۀ هر پروژه حتما یک پوشۀ جدا با نام پروژۀ خود بسازیم و در آن پوشه یک پوشۀ دیگر با نام Code(یا هر نام دیگر) بنویسیم و پروژه خودمان را در این پوشه ذخیره کنیم.
- محل ذخیرۀ پروژه ترجیحاً در درایو C باشد.
- نام پوشه ها و نام پروژه با حروف لاتین بوده و با حروف فارسی نباشد.
- مسیر پوشه ها و پروژه در پوشه های زیاد تودرتو نباشد.
توجه شود که سه مرتبه نام پروژه برای سه فایل خواسته می شود که ما آن را برای مثال tst نام گذاری می کنیم. بار اول نامی برای ذخیرۀ فایل با پسوند c هست که فایل اصلی بوده و ما می توانیم کدهای خود را در آن بنویسیم. بار دوم نامی برای ذخیرۀ فایل با پسوند prj است که فایل پروژۀ برنامه بوده و مدیریت بر تمامی دیگر فایل های برنامه را انجام می دهد. همچنین پس از ذخیرۀ پروژه، هر مرتبه برای باز کردن پروژه و ورود به نرم افزار، می بایست که این فایل (فایل با فرمت prj) را باز کنیم. بار سوم نامی برای ذخیرۀ فایل با پسوند cwp است که فایلی هست که تغییرات انجام شده در پنجرۀ CodeWizardAVR را در بر دارد. توجه شود که ما از این فایل استفاده نمی کنیم و تغییرات پنجرۀ CodeWizardAVR علاوه بر این که در این فایل اعمال می شود، در فایل با فرمت c نیز اعمال می شود که ما از آن استفاده می کنیم.
پس از ذخیرۀ پروژه محیط نرم افزار کدویژن (تصویر 7) را می بینیم.
تصویر 7 – محیط نرم افزار کدویژن پس از استفاده از کدویزارد
همانطور که در تصویر فوق مشاهده میکنیم، در نرم افزار کدویژن فایل با نام tst و با پسوند c ساخته شده و برخی کدها بصورت پیش فرض در این فایل موجود است. این کدها به دلیل استفاده از پنجره CodeWizardAVR تولید شدهاند. در این فایل میبایست کدهای برنامه نوشته شود.
در این مرحله اگر که به محل ساخت پروژه مراجعه کنیم، تصویر زیر را می بینیم.
تصویر 8 – پوشۀ پروژۀ نرم افزار کدویژن
در این تصویر می توانیم فایل های با پسوند c همچنین prj و cwp را ببینیم. همچنین نرم افزار پوشه های Debug و Release را ساخته است. که اگر به پوشۀ Debug و سپس Exe مراجعه کنیم، می بینم که این پوشه خالی است (تصویر 9).
تصویر 9 – محتوای پوشۀ Exe پیش از کامپایل برنامه در نرم افزار کدویژن
حال به نرم افزار برمی گردیم و بر روی آیکون Build کلیک می کنیم.
تصویر 10 – آیکون Build در نرم افزار کدویژن
با انجام این عمل، کد نوشته شده در زبان C را به کد هگز تبدیل یا اصطلاحاً برنامه را کامپایل کردیم. در این صورت پنجرۀ Information باز می شود که می توانیم روی OK کلیک کنیم. در صورتی که در برنامۀ نوشته شده خطایی وجود نداشته باشد، کامپایل کردن پروژه منجر به ایجاد فایل HEX در CodeVisionAVR می شود.
تصویر 11 – باز شدن پنجرۀ Information پس از کامپایل برنامه در نرم افزار کدویژن
در این مرحله اگر مجدد به پوشۀ Exe برگردیم، فایل های زیر را در این پوشه می بینیم.
تصویر 12 – فایل HEX ایجاد شده در پوشۀ Exe با کامپایل برنامه در نرم افزار کدویژن
فایلی با پسوند hex ساخته شده که همان فایلی است که باید به حافظۀ میکروکنترلر منتقل شود. به این کار پروگرام کردن یا برنامه ریزی میکروکنترلر می گویند. که روش برنامه ریزی میکروکنترلرهای AVR در «آموزش AVR» بررسی می شود.
ایجاد پروژه در نرم افزار کدویژن بدون استفاده از CodeWizardAVR
ساخت پروژه را بدون استفاده از CodeWizardAVR نیز می توان انجام داد. برای این منظور با رفتن به منوی File و کلیک بر روی Project از بخش New یک پروژه جدید می سازیم. مجدداً پنجرۀ Confirm را می بینیم.
تصویر 13 – ایجاد پروژه در نرم افزار کدویژن بدون استفاده از کدویزارد
با انتخاب گزینۀ No تصویر زیر ظاهر شده که نام و محل ذخیرۀ فایل با پسوند prj از ما خواسته می شود.
تصویر 14 – ایجاد پروژه با نرم افزار کدویژن، تعیین نام و ذخیرۀ فایل prj
نام آن را tst2 قرار داده و آن را در محلی مناسب که در گذشته گفته شد، ذخیره می کنیم. پس از آن با پنجرۀ زیر روبرو می شویم.
تصویر 15 – انتخاب میکروکنترلر هنگام ایجاد پروژه در نرم افزار کدویژن
در این قسمت میکروکنترلر موردنظر خود را انتخاب می کنیم و با تایید این پنجره، یکی از مهمترین پنجره های این نرم افزار به نام Configure Project را می بینیم.
تصویر 16 – پنجرۀ Configure Project در نرم افزار کدویژن
همانطور که از نام آن پیداست، در این قسمت تنظیمات پروژه انجام می شود. بطور مثال می توانیم در منوی C Compiler، نوع و فرکانس کاری میکروکنترلر را تغییر دهیم. این پنجره را تایید می کنیم و پس از تایید آن با محیط نرم افزار کدویژن روبرو می شویم.
تصویر 17 – محیط نرم افزار کدویژن بدون استفاده از کدویزارد
همانطور که می بینیم در این پروژه نیز یک فایل پروژه و یک فایل c ساخته شده است. اما در این فایل c کدهای کمی وجود دارد و مثل روش قبلی کدهای زیادی در آن نیست. و خودمان باید کدهای برنامه را در این فایل c بنویسیم. در این روش نیز برای تولید فایل HEX با کدویژن، می توانیم مثل روش قبل پروژه را کامپال کنیم. که باتوجه به مشابه بودن این موارد با روش قبل، از تکرار آن خودداری شده است.
در این متن هدف تنها آموختن روش ساخت پروژه با استفاده از نرمافزار CodeVisionAVR بوده و توضیحات تکمیلی و همچنین ادامۀ مسیر در جلسات «آموزش برنامه نویسی میکروکنترلرها به زبان C» و همچنین آموزش AVR بررسی می شود.
از بررسی نحوه ایجاد پروژه در کدویژن نتایج زیر حاصل می شوند:
- برای ساخت پروژه در نرم افزار کدویژن دو راه وجود دارد. یکی استفاده از قابلیت کدویزارد و دیگری بدون استفاده از این قابلیت.
- در ساخت پروژه در نرم افزار کدویژن با استفاده از قابلیت کدویزارد، با تیک زدن و مقداردهی و انجام تنظیمات گرافیکی در کدویزارد، کدهایی به صورت آماده به زبان C در محیط کدنویسی نرم افزار کدویژن تولید می شود. این کدها تنظیمات رجیسترهای میکروکنترلر و گاهی برنامه ها و توابعی برای راحت تر شدن کار با واحدهای داخلی میکروکنترلر هستند.
- هنگام استفاده از کدویزارد در نرم افزار کدویژن، باید دقت کرد که برای ذخیرۀ پروژه پس از انتخاب گزینۀ Generate, Save and Exit، باید سه بار نام پروژه را وارد کنیم.
- تا موقعی که پروژه را کامپایل نکنیم، در پوشۀ Exe که از پوشه های پروژه در نرم افزار کدویژن است، فایل HEX ساخته نخواهد شد.
- در ساخت پروژه در کدویژن بدون استفاده از کدویزارد، تنها یک بار نیلز است که نام فایل پروژه را وارد کنیم.
- در پنجرۀ Configure project می توان تنظیماتی از قبیل تعیین فرکانس کلاک میکروکنترلر، فعال کردن کتابخانه های نرم افزار و … را انجام داد.
سلام. من میخوام شروع به کار با میکروکنترلرها بکنم. شما توی اول متن فرمودید که پیشنهادتون کار با نرم افزار اتمل استودیو هست. من نمیدونم که با نرم افزار اتمل استودیو کار کنم یا کدویژن. از طریق دوستان یا یوبرد آشنا شدم گفتن شما میتونید منو خوب راهنمایی کنید. فکرکنم این سوال خیلی های دیگه هم باشه. تشکر.
سلام. بله همین طوره. توی متن گفتم توصیه می کنیم برای کدنویسی میکروکنترلرهای AVR از نرم افزار اتمل استودیو استفاده کنید ولی برای شروع بهتره با نرم افزار کدویژن شروع کنید. کدویژن یک امکان به اسم کدویزارد داره که با استفاده از اون میتونید بدون درگیری با رجیسترها تنظیمات اولیه رو انجام بدید. همچنین کتابخونه های خوبی برای شروع کار با میکروکنترلرهای AVR داره. هر وقت احساس کردید می تونید به طور دستی به رجیسترها مقدار بدید (که این کار با مطالعۀ رجیسترهای میکروکنترلرهای AVR و مشرف شدن به تئوری واحدهای داخلی میکروکنترلرهای AVR و همچنین پیشرفت سطح برنامه نویسی به دست میاد)، اون وقت با توجه به مطالب آموزش اتمل استودیو و مهاجرت از کدویژن به اتمل استودیو، شروع کنید با نرم افزاراتمل استودیو برای میکروکنترلرهای AVR برنامه بنویسید. در ادامه نیاز پیدا می کنید که کتابخونه هایی رو به برنامه تون اضافه کنید. برای این که بتونید با کتابخونه ها کار کنید و یا اونا رو خودتون بنویسید؛ مطالعۀ نوشتۀ «نحوۀ ساخت کتابخانه در زبان برنامه نویسی C برای میکروکنترلرها» مفیده.
واقعا نرم افزار اتمل استودیو رو با کدویژن نمیشه مقایسه کرد. حیف که یک نرم افرار به خوبی Atmel Studio نداریم که بشه توی اون برای تمام میکروکنترلرها کد زد.
بله. اتمل استودیو واقعاً نرم افزار خوبیه. بهخاطر همین ما توی آموزش های AVR سطح مقدماتی و آموزش AVR سطح پیشرفته هم با کدویژن کد می نویسیم و هم با اتمل استودیو. اگه میکروکنترلرهای دیگه هم نرم افزار رایگانی به خوبی اتمل استودیو داشتن خیلی خوب میشد. اگه نرم افزاری وجود داشت که میشد با اون برای تموم میکروکنترلرها کد نوشت واقعاً عالی میشد.
سلام استاد. پیشنهاد شما اینه که با کدویزارد پروژه بسازیم یا بدون استفاده از کدویزارد؟
نظر من اینه که کدنویسی اصولی داشته باشیم. اگه کدویزارد برامون کد مناسبی تولید میکنه استفاده ش کنیم. یا کدهای کدویزارد رو ویرایش کنیم و اونا رو ارتقا بدیم. برای مثال اگه توی کدویزارد قابلیت خواندن از چند کانال ADC رو فعال می کنیم، کدی رو که توی روتین وقفۀ ADC برای ما تولید میکنه ارتقا بدیم. حتی میشه کدهایی که کدویزارد تولید میکنه توی اتمل استودیو کپی کرد و انجا ازشون استفاده کرد. البته تغییراتی لازمه که توی نوشتۀ مهاجرت از کدویژن به اتمل استودیو توضیح دادم.
سلام جناب اسدی. توی ساخت پروژه با کدویزارد چی کار کنم که کدهای اضافی تولید نشن؟ وقتی generate می کنیم. ممنون
سلام. قبل از generate کردن از همون منوی Program کدویزارد تیک گزینۀ Generate Code for Disabled Peripherals رو بردارید، بعد Generate کنید.
سلا جناب اسدی من یک برنامه نوشتم رام که میکنم خطا نمی زنه ولی در شکل پروتوس که مخوام اجراش کنم خطا میزنه و ران نمیشه اینو باید چه طوری درستش کنم
سلام. چنین خطاهایی ممکنه دلایل مختلفی داشته باشن. از عملکرد صحیح پروتئوس مطمئن بشید. فیوزبیت ها رو توی پروتئوس درست تنظیم کنید. فرکانس میکروکنترلر رو تو پروتئوس برابر فرکانس انتخاب شده تو کدویژن بذارید. همچنین مطمئن بشید مسیر کوتاهی برای پوشۀ پروژه ایجاد شده باشه. و هیچ کدوم از پوشه های مسیر اسم فارسی نداشته باشن و همۀ کاراکترهاشون انگلیسی باشه. مثلاً یه پوشه با اسم test تو دسکتاپ بسازید و فایل های پروتئوس و کدویژن رو توی اون قرار بدید.
سلام من پروژه که میسازم موقع کامپایل از #include اررور میگیره
سلام. با CodeVizard هم پروژه می سازید همین طوریه؟ بعضی وقتا روی ارورها که دابل کلیک میکنیم جایی از کد نمایش داده میشه که ارور مربوط به اونجا نیست. مثلاً ارور توی سطر بعدیه. با کدویزارد هم تست کنید. اگه باز ارور داشتید احتمالاً فایل هایی از برنامه حذف شده. یه بار دیگه نرم افزار رو نصب کنید. نسخۀ 3.12 به نظرم خوبه. در ضمن نرم افزار رو توی مسیر پیش فرض نصب کنید
سلام
ممنون از توضیحات کاملتان.
بنده از ابزار سیمولینک متلب برای تبدیل بلوک دیاگرام شماتیک پروژه ام به کد Cبهره بردم. یک پوشه باز شده با چندین فایل C با نام های مختلف. مشکل من اونجاست که نمیدونم چطور از همه ی این فایل های جدا جدا، یک فایل هگز استخراج کنم که بشود روی میکروکنترلر پیاده کرد.
ممنون میشم راهنماییم کنید.
سلام. خواهش میکنم. زنده باشید. نظرتون رو تایید میکنم که دوستان دیگه راه حل رو ارائه بدن
باسلام وعرض ادب استاد فرزانه جناب مهندس رضا اسدی. از عنایت سخاوتمندانه وبذل علم شما صمیمانه تشکر میکنم.من حدود 10 سال استکه دنبال استادی جهت اموزش در این امور.هستم. اما …بعلت نوع شغلم (برقکار) تا امروز هرگز فرصتی نداشتم.متاسفانه جایی که من زندگی میکنم. نه کلاسی ونه استاد حاذقی وجود دارد که از ایشان کسب فیض کنم. تا الان با سایت وفعالیت حضرتعالی آشنا شدم.از انچه که اموختم صمیمانه تشکرمیکنم.با احترام اخترشناس
سلام و عرض ارادت. خیلی ممنون و سپاسگزارم از نظرتون. شما خیلی لطف دارید. امیدوارم موفق و پیروز باشید. ما رو سربلند کردید. خواهش میکنم. انجام وظیفه بوده. تشکر از شما
درود وسپاس از اینکه لطف فرمودید آموزش کد ویژن را چقدر برام جالب بود بنده سوادم اول راهنمایی قدیمه خیلی برام آسان توضیح دادید ممنون
سلام. خیلی ممنون از نظرتون. لطف دارید. انجام وظیفه ست. موفق باشید.
با سلام و وقت بخیر،
خیلی متشکرم بابت مطالب خوب و مفیدی که قرار دادید،
یه سوال داشتم ممکنه راهنماییم بفرمایید؟
من بدون Codewizard تمام مراحل رو همینطور که فرمودید پیش بردم، اما برای اجرای برنامه ام خطای زیر را میگیرم:
can't open #include file : io.h
برنامه ساده ای نوشتم و چندین بار هم چک کردم، به نظز شما مشکل کجاست؟
سلام. وقتتون بخیر. خواهش میکنم. زنده باشید. ممکنه به هر دلیلی فایل io.h توی مسیر نصب نرم افزار پاک شده باشه. شما یک بار هم با اکانت administrator کامپیوتر پروژه بسازید و تست کنید. اگه این بار خطایی وجود نداشت به این معنی که یوزری که توی کامپیوتر از اون استفاده میکنید، به فایل io.h دسترسی نداره و کدویژن نمیتونه بازش کنه. اگه با administrator هم باز همون خطا وجود داشت، یا فایل حذف شده یا آسیب دیده. یه بار دیگه کدویژن رو حذف و نصب کنید.. نسخۀ 3.12 من استفاده میکنم نسخۀ خوبیه. اگه تا الان با اتمل استودیو (اسم نسخۀ جدیدش: میکروچیپ استودیو) کار نکردید توصیه میکنم اون رو هم امتحان کنید. خیلی بهتر از کدویژنه. آموزشش توی وبلاگ هست. موفق باشید
عااالی بود من واقعا خوب متوجه شدم ممنونم از توضیح راحت و واضحتون. خدا قوت
سلام. ممنون از توجهتون. خواهش میکنم. موفق باشید