آموزش نرم افزار CodeVisionAVR ایجاد پروژه در کدویژن

توسط | 6 اسفند, 1398 | میکروکنترلر | 25 دیدگاه ها

معرفی مختصر نرم افزار کدویژن، دو روش ایجاد پروژه در نرم افزار CodeVisionAVR، ایجاد پروژه در نرم افزار کدویژن با استفاده از CodeWizardAVR، نکات ذخیرۀ فایل های پروژه نرم افزار کدویژن، تولید فایل HEX در نرم افزار کدویژن، ایجاد پروژه در نرم افزار کدویژن بدون استفاده از CodeWizardAVR
ساخت-پروژه-کدویژن-covevisionavr

نرم افزار کدویژن یکی از نرم افزارهای مناسب برای شروع کار با میکروکنترلرهای AVR است. نرم افزار کدویژن تنها IDE برای میکروکنترلرهای AVR است که دارای یک تولید کنندۀ کد یا Code Generator است. این تولید کنندۀ کد که CodeWizardAVR نام دارد، می تواند برای تراشه های AVR8 ، AVR8X و XMEGA کد تولید نماید. یکی از قابلیت های نرم افزار کدویژن کتابخانه های آن است. در نرم افزار کدویژن کتابخانه هایی برای راه اندازی LCDهای کاراکتری و LCDهای گرافیکی، پروتکل ارتباطی I2C، آی سی DS1307 و … وجود دارد و کاربرد می تواند با زدن چند تیک در CodeWizardAVR از این کتابخانه ها استفاده کند. با استفاده از نرم افزار کدویژن می توان میکروکنترلر را پروگرام کرد. اگرچه توصیۀ ما برای کدنویسی میکروکنترلرهای AVR، استفاده از نرم افزار Atmel Studio است، ولی برای شروع کار با میکروکنترلرهای AVR نرم افزار کدویژن کافی است. البته می توان برنامۀ نوشته شده در نرم افزار کدویژن را به نرم افزار Atmel Studio منتقل کرد. برای یادگیری انتقال برنامه از نرم افزار کدویژن به نرم افزار اتمل استودیو به نوشتۀ «آموزش Atmel Studio مهاجرت از کدویژن به اتمل استودیو» مراجعه فرمایید. برای آشنایی بیشتر با میکروکنترلرها به نوشتۀ «معرفی میکروکنترلر» مراجعه فرمایید. در این نوشته می خواهیم به آموزش کدویژن و نحوه ساخت پروژه در کدویژن بپردازیم.

فیلم آموزش میکروکنترلرهای AVR مقدماتی

فیلم آموزش ARM STM32 مقدماتی

فیلم آموزش آردوینو مقدماتی

دو روش ایجاد پروژه در نرم افزار CodeVisionAVR

به منظور ایجاد یک محیط برای نوشتن کد به زبان C برای یک میکروکنترلر خاص (بطور مثال میکروکنترلر ATmega128A) در نرم افزار کدویژن می‌بایست که یک پروژه ایجاد کرد. برای ایجاد پروژه در نرم افزار کدویژن دو روش وجود دارد، یکی با استفاده از امکان CodeWizardAVR و دیگری بودن استفاده از امکان CodeWizardAVR، که در هر دوی این روش ها، اولین قدم مشترک است.

همانند هر نرم افزار مهندسی دیگر، برای ساخت پروژه در نرم افزار کدویژن باید همانند تصویر زیر، در منوی File در بخش New روی Project کلیک کرد.

ایجاد-پروژه-نرم-افزار-کدویژن-codevisionavr

تصویر 1 – ایجاد پروژه در نرم افزار کدویژن، آغاز ساخت پروژه

پس از انجام این کار در نرم افزار کدویژن، با پنجرۀ Confirm (تصویر 2) روبرو می شویم. پس از این مرحله، ساخت پروژه در نرم افزار کدویژن به دو روش امکان پذیر است که در ادامه بررسی می شوند.

 

ایجاد پروژه در نرم افزار کدویژن با استفاده از CodeWizardAVR

برای ایجاد پروژه کدویژن با کدویزارد، در پنجرۀ Confirm، عبارت Yes را انتخاب می کنیم. در این پنجره سوال شده که آیا مایل به استفاده از کدویزارد هستید یا خیر. CodeWizardAVR یک محیط گرافیکی در نرم افزار کدویژن است که می توان در آن تنظیماتی رجیسترهای میکروکنترلر را به صورت گرافیکی تغییر داد. که در نهایت این تغییرات به کد C تبدیل شده و به کد ما اضافه می شوند. با استفاده از این قابلیت می توان برای تنظیمات اولیۀ برخی قسمت ها کدنویسی نکرده و از CodeWizardAVR برای تولید این کدها استفاده کرد.

ایجاد-پروژه-نرم-افزار-کدویژن-codevisionavr-codewizard-کدویزارد

تصویر 2 – ایجاد پروژه در نرم افزار کدویژن با استفاده از کدویزارد

توجه داشته باشید امکان Wizard در برخی نرم افزاهای IDE مثل CodeVisionAVR موجود بوده اما در برخی وجود ندارد. که در این سری در نرم افزاها، امکان Wizard بصورت یک نرم افزار جانبی وجود دارد. بطور مثال نرم افزار Keil یک IDE بدون Wizard است که نرم افزارهای Wizard جانبی مثل CubeMx و یا ARMWizard برای آن وجود دارد.

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

انتخاب-خانواده-تراشه-مورد-نظر-کدویژن-codewizardavr

تصویر 3 – انتخاب خانوادۀ تراشۀ مورد نظر در CodeWizardAVR

پس از تایید مرحله قبل، همانطور که در تصویر زیر می بینیم، پنجرۀ CodeWizardAVR باز می شود. در قسمت Chip تراشه مورد استفاده خود که ATmega128A می‌باشد را می بینیم و می توانیم آن را تغییر دهیم. در بخش های دیگر می‌توانیم قسمت‌های مختلف را در حالت مورد نظر تنظیم کنیم. به طور مثال فرکانس کاری میکروکنترلر را 8مگاهرتز درنظر بگیریم و یا در قسمت USART0 تنظیمات مربوط به ارتباط سریال USART شماره صفر را انجام دهیم.

پنجره-codewizardavr-کدویژن

تصویر 4 – پنجرۀ CodeWizardAVR

پس از اعمال تغییرات، به منظور ساخت و ذخیرۀ پروژه، در منوی Program روی Generate, Save and Exit کلیک می کنیم.

ساخت-فایل-پروژه-کدویژن-کدویزارد-codevisionavr-codewizardavr

تصویر 5 – ساخت فایل های پروژه در نرم افزار کدویژن با استفاده از کدویزارد

پس از آن پنجرۀ زیر ظاهر شده که میبایست در آن نام و محل ذخیرۀ پروژه را وارد کنیم.

تولید-فایل-پروژه-کدویژن

تصویر 6 – تولید فایل های پروژه نرم افزار کدویژن و ذخیرۀ آنها

برای ذخیرۀ پروژه باید چهار نکتۀ زیر را درنظر داشته باشیم:

  • برای ذخیرۀ هر پروژه حتما یک پوشۀ جدا با نام پروژۀ خود بسازیم و در آن پوشه یک پوشۀ دیگر با نام Code(یا هر نام دیگر) بنویسیم و پروژه خودمان را در این پوشه ذخیره کنیم.
  • محل ذخیرۀ پروژه ترجیحاً در درایو C باشد.
  • نام پوشه ها و نام پروژه با حروف لاتین بوده و با حروف فارسی نباشد.
  • مسیر پوشه ها و پروژه در پوشه های زیاد تودرتو نباشد.

توجه شود که سه مرتبه نام پروژه برای سه فایل خواسته می شود که ما آن را برای مثال tst نام گذاری می کنیم. بار اول نامی برای ذخیرۀ فایل با پسوند c هست که فایل اصلی بوده و ما می توانیم کدهای خود را در آن  بنویسیم. بار دوم نامی برای ذخیرۀ فایل با پسوند prj است که فایل پروژۀ برنامه بوده و مدیریت بر تمامی دیگر فایل های برنامه را انجام می دهد. همچنین پس از ذخیرۀ پروژه، هر مرتبه برای باز کردن پروژه و ورود به نرم افزار، می بایست که این فایل (فایل با فرمت prj) را باز کنیم. بار سوم نامی برای ذخیرۀ فایل با پسوند cwp است که فایلی هست که تغییرات انجام شده در پنجرۀ CodeWizardAVR را در بر دارد. توجه شود که ما از این فایل استفاده نمی کنیم و تغییرات پنجرۀ CodeWizardAVR علاوه بر این که در این فایل اعمال می شود، در فایل با فرمت c نیز اعمال می شود که ما از آن استفاده می کنیم.

پس از ذخیرۀ پروژه محیط نرم افزار کدویژن (تصویر 7) را می بینیم.

محیط-نرم-افزار-کدویژن-استفاده-کدویزارد-codevisionavr-codewizardavr

تصویر 7 – محیط نرم افزار کدویژن پس از استفاده از کدویزارد

همانطور که در تصویر فوق مشاهده می‌کنیم، در نرم افزار کدویژن فایل با نام tst و با پسوند c ساخته شده و برخی کدها بصورت پیش فرض در این فایل موجود است. این کدها به دلیل استفاده از پنجره  CodeWizardAVR تولید شده‌اند. در این فایل می‌بایست کدهای برنامه نوشته شود.

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

پوشه-پروژه-کدویژن-کدویزارد

تصویر 8 – پوشۀ پروژۀ نرم افزار کدویژن

در این تصویر می توانیم فایل های با پسوند c همچنین prj و cwp را ببینیم. همچنین نرم افزار پوشه های Debug و Release را ساخته است. که اگر به پوشۀ Debug و سپس Exe مراجعه کنیم، می بینم که این پوشه خالی است (تصویر 9).

محتوای-پوشه-exe-کدویژن

تصویر 9 – محتوای پوشۀ Exe پیش از کامپایل برنامه در نرم افزار کدویژن

حال به نرم افزار برمی گردیم و بر روی آیکون Build کلیک می کنیم.

آیکون-build-کدویژن

تصویر 10 – آیکون Build در نرم افزار کدویژن

با انجام این عمل، کد نوشته شده در زبان C را به کد هگز تبدیل یا اصطلاحاً برنامه را کامپایل کردیم. در این صورت پنجرۀ Information باز می شود که می توانیم روی OK کلیک کنیم. در صورتی که در برنامۀ نوشته شده خطایی وجود نداشته باشد، کامپایل کردن پروژه منجر به ایجاد فایل HEX در CodeVisionAVR می شود.

پنجره-information-کامپایل-کدویژن

تصویر 11 – باز شدن پنجرۀ Information پس از کامپایل برنامه در نرم افزار کدویژن

در این مرحله اگر مجدد به پوشۀ Exe برگردیم، فایل های زیر  را در این پوشه می بینیم.

فایل-هگز-hex-پوشه-exe-کدویژن

تصویر 12 – فایل HEX ایجاد شده در پوشۀ Exe با کامپایل برنامه در نرم افزار کدویژن

فایلی با پسوند hex ساخته شده که همان فایلی است که باید به حافظۀ میکروکنترلر منتقل شود. به این کار پروگرام کردن یا برنامه ریزی میکروکنترلر می گویند. که روش برنامه ریزی میکروکنترلرهای AVR در «آموزش AVR» بررسی می شود.

 

ایجاد پروژه در نرم افزار کدویژن بدون استفاده از CodeWizardAVR

ساخت پروژه را بدون استفاده از CodeWizardAVR نیز می توان انجام داد. برای این منظور با رفتن به منوی File و کلیک بر روی Project از بخش New یک پروژه جدید می سازیم. مجدداً پنجرۀ Confirm را می بینیم.

ایجاد-پروژه-کدویژن-بدون-کدویزارد

تصویر 13 – ایجاد پروژه در نرم افزار کدویژن بدون استفاده از کدویزارد

با انتخاب گزینۀ No تصویر زیر ظاهر شده که نام و محل ذخیرۀ فایل با پسوند prj از ما خواسته می شود.

ذخیره-فایل-کدویژن

تصویر 14 – ایجاد پروژه با نرم افزار کدویژن، تعیین نام و ذخیرۀ فایل prj

نام آن را tst2 قرار داده و آن را در محلی مناسب که در گذشته گفته شد، ذخیره می کنیم. پس از آن با پنجرۀ زیر روبرو می شویم.

انتخاب-میکروکنترلر-کدویژن

تصویر 15 – انتخاب میکروکنترلر هنگام ایجاد پروژه در نرم افزار کدویژن

در این قسمت میکروکنترلر موردنظر خود را انتخاب می کنیم و با تایید این پنجره، یکی از مهمترین پنجره های این نرم افزار به نام  Configure Project را می بینیم.

پنجره-configure-project-کدویژن

تصویر 16 – پنجرۀ Configure Project در نرم افزار کدویژن

همانطور که از نام آن پیداست، در این قسمت تنظیمات پروژه انجام می شود. بطور مثال می توانیم در منوی C Compiler، نوع و فرکانس کاری میکروکنترلر را تغییر دهیم. این پنجره را تایید می کنیم و پس از تایید آن با محیط نرم افزار کدویژن روبرو می شویم.

محیط-نرم-افزار-کدویژن-بدون-استفاده-کدویزارد

تصویر 17 – محیط نرم افزار کدویژن بدون استفاده از کدویزارد

همانطور که می بینیم در این پروژه نیز یک فایل پروژه و یک فایل c ساخته شده است. اما در این فایل c کدهای کمی وجود دارد و مثل روش قبلی کدهای زیادی در آن نیست. و خودمان باید کدهای برنامه را در این فایل c بنویسیم. در این روش نیز برای تولید فایل HEX با کدویژن، می توانیم مثل روش قبل پروژه را کامپال کنیم. که باتوجه به مشابه بودن این موارد با روش قبل، از تکرار آن خودداری شده است.

در این متن هدف تنها آموختن روش ساخت پروژه با استفاده از نرم‌افزار  CodeVisionAVR بوده و توضیحات تکمیلی و همچنین ادامۀ مسیر در جلسات «آموزش برنامه نویسی میکروکنترلرها به زبان C» و همچنین آموزش AVR بررسی می شود.

 

از بررسی نحوه ایجاد پروژه در کدویژن نتایج زیر حاصل می شوند:

  1. برای ساخت پروژه در نرم افزار کدویژن دو راه وجود دارد. یکی استفاده از قابلیت کدویزارد و دیگری بدون استفاده از این قابلیت.
  2. در ساخت پروژه در نرم افزار کدویژن با استفاده از قابلیت کدویزارد، با تیک زدن و مقداردهی و انجام تنظیمات گرافیکی در کدویزارد، کدهایی به صورت آماده به زبان C در محیط کدنویسی نرم افزار کدویژن تولید می شود. این کدها تنظیمات رجیسترهای میکروکنترلر و گاهی برنامه ها و توابعی برای راحت تر شدن کار با واحدهای داخلی میکروکنترلر هستند.
  3. هنگام استفاده از کدویزارد در نرم افزار کدویژن، باید دقت کرد که برای ذخیرۀ پروژه پس از انتخاب گزینۀ Generate, Save and Exit، باید سه بار نام پروژه را وارد کنیم.
  4. تا موقعی که پروژه را کامپایل نکنیم، در پوشۀ Exe که از پوشه های پروژه در نرم افزار کدویژن است، فایل HEX ساخته نخواهد شد.
  5. در ساخت پروژه در کدویژن بدون استفاده از کدویزارد، تنها یک بار نیلز است که نام فایل پروژه را وارد کنیم.
  6. در پنجرۀ Configure project می توان تنظیماتی از قبیل تعیین فرکانس کلاک میکروکنترلر، فعال کردن کتابخانه های نرم افزار و … را انجام داد.

 

رضا اسدی

رضا اسدی

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

آموزش میکروکنترلرهای ARM سری STM32 یوبرد

آموزش میکروکنترلرهای AVR یوبرد

آموزش میکروکنترلرهایARM سری LPC یوبرد

آموزش Arduino یوبرد

خدمات برنامه نویسی میکروکنترلر یوبرد

راه-اندازی-dac-stm32

راه اندازی DAC در STM32

راه اندازی DAC در STM32، ویژگی های DAC در میکروکنترلرهای STM32F1، بلوک دیاگرام DAC در STM32، اتصالات راه اندازی DAC در میکروکنترلر STM32F107VC، نمونه کد رجیستری راه اندازی واحد DAC در میکروکنترلرهای STM32F1، ساخت موج سینوسی با STM32، راه اندازی مبدل دیجیتال به آنالوگ STM32 با توابع HAL

راه-اندازی-سون-سگمنت-با-آردوینو

راه اندازی سون سگمنت با آردوینو

راه اندازی سون سگمنت با آردوینو UNO، راه اندازی سون سگمنت 4 تایی آند مشترک با آردوینو، اتصال سون سگمنت به آردوینو، کتابخانۀ سون سگمنت برای آردوینو، نمونه کد راه اندازی سون سگمنت، نمایش اعداد در سون سگمنت 4 تایی، نکات راه اندازی سون سگمنت

راه-اندازی-adc-در-آردوینو

راه اندازی ADC در آردوینو

راه اندازی ADC در آردوینو، راه اندازی LCD گرافیکی KS0108 با کتابخانۀ U8g2، اتصالات لازم برای راه اندازی ADC و LCD گرافیکی KS0108، نمونه کد راه اندازی ADC آردوینو، فرمول محاسبۀ دما با TMP36، راه اندازی سنسور دما با آردوینو، راه اندازی فتوسل (LDR) با آردوینو

کنترل موتور براشلس با STM32

از ویژگی‌های تایمرهای Advanced میکروکنترلرهای STM32، امکان ایجاد PWM شش مرحله‌ای است. PWM شش مرحله‌ای در کنترل موتورهای براشلس کاربرد دارد و در STM32 می‌توان با تایمرهای Advanced، موتورهای براشلس را کنترل کرد. PWM شش مرحله‌ای نسبت به روش‌های دیگر کنترل موتور براشلس، عملکرد بهتر، مصرف انرژی کمتر و سطح ایمنی بالاتری را فراهم می‌آورد.

از مباحث آموزش STM32

فیوزبیت EESAVE

برای جلوگیری از پاک شدن محتوای حافظۀ EEPROM داخلی میکروکنترلرهای AVR در هنگام پاک کردن حافظۀ فلش آن، فیوزبیتی به نام EESAVE وجود دارد که باید فعال شود. در غیر این صورت، هر بار که حافظۀ فلش پاک می‌شود، حافظۀ EEPROM نیز پاک می‌شود. فیوزبیت EESAVE به صورت پیش‌فرض غیر فعال است و برای حفظ محتوای EEPROM باید فعال شود. حفظ محتوای EEPROM در بسیاری از پروژه‌ها ضروری است.

از مباحث آموزش AVR

تفاوت Event با وقفه در STM32

در میکروکنترلرهای STM32، علاوه بر وقفه‌های خارجی، Eventهای خارجی هم وجود دارند. تفاوت Event خارجی با وقفۀ خارجی این است که در وقفۀ خارجی، اجرای کد وجود دارد و با اتفاق افتادن آن، کدهای روتین وقفه اجرا می‌شوند، اما در Event خارجی، اجرای کد وجود ندارد و اتفاق افتادن آن فقط باعث می‌شود  میکروکنترلر از مد کاهش مصرف توان خارج شود.

از مباحث آموزش STM32

کلاک خروجی در STM32

در میکروکنترلرهای STM32، قابلیتی وجود دارد که می‌توان از برخی قسمت‌های واحد RCC، یک سیگنال کلاک را انتخاب کرد و آن را روی یک پایۀ خروجی تحت عنوان MCO قرار داد. سیگنال کلاک خروجی می‌تواند از قسمت‌هایی نظیر کلاک سیستم، خروجی PLLها، خروجی اسیلاتورهای HSE و HSI یا از بخش‌هایی دیگر باشد. این سیگنال خروجی می‌تواند برای سنکرون سازی و یا تأمین کلاک یک مدار یا آی سی دیگر به کار رود.

از مباحث آموزش STM32

وقفۀ Pin change در AVR

در برخی میکروکنترلرهای AVR، وقفه‌های Pin change وجود دارند که تفاوتشان با وقفۀ خارجی این است که در وقفۀ خارجی می‌توان تعیین کرد وقفه با لبۀ پایین‌رونده یا بالارونده یا تغییر سطح اتفاق بیفتد، اما وقفۀ Pin change با هر لبه یا تغییر سطح سیگنال اتفاق می‌افتد. همچنین هر وقفۀ خارجی با تحریک تنها یک پایۀ ورودی اتفاق می‌افتد. اما هر وقفۀ Pin change، چند پایۀ ورودی دارد و تحریک هر یک از آنها، باعث اتفاق افتادن وقفۀ Pin change می‌شود.
از مباحث آموزش آردوینو

خواندن فرکانس و دیوتی سایکل با آردوینو

یک روش برای خواندن Duty Cycleو فرکانس موج PWM ، قابلیت Capture تایمرهاست. برای بردهای آردوینو مبتنی بر AVR، کتابخانۀ TimerOne،  فاقد قابلیت کپچر است. اما در کتابخانۀ HardwareTimer میکروکنترلرهای STM32 در آردوینو، می‌توان از کپچر استفاده کرد و مد input PWM تایمرهای STM32 را فعال کرد و دو کپچر را به کار گرفت و فرکانس و دیوتی سایکل موج ورودی را خواند.

از مباحث آموزش آردوینو

اولویت وقفه‌ها در STM32

 

از مباحث آموزش stm32در میکروکنترلرهای STM32، قابلیتی وجود دارد که می‌توان از برخی قسمت‌های واحد RCC، یک سیگنال کلاک را انتخاب کرد و آن را روی یک پایۀ خروجی تحت عنوان MCO قرار داد. سیگنال کلاک خروجی می‌تواند از قسمت‌هایی نظیر کلاک سیستم، خروجی PLLها، خروجی اسیلاتورهای HSE و HSI یا از بخش‌هایی دیگر باشد. این سیگنال خروجی می‌تواند برای سنکرون سازی و یا تأمین کلاک یک مدار یا آی سی دیگر به کار رود.

از مباحث آموزش STM32

25 دیدگاه ها

  1. سلام
    تشکر بابت زحمات

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

      پاسخ
  2. با سلام وتشکر بابت مطالب مفید شما
    من چند مشکل دارم
    اول اینکه من با کدویژن EvaluationV2.05.oکرک شده کار میکنم
    پروژه که تمام میکنم بدون خطا کد میکنه ولی دفعه دیگه که همین پروژه را جهت بهبود وتوسعه کارمیکنم خطا میده
    وبعضی وقتا فایل پروژه در پروتوئوس دیده نمیشه
    با تشکر

    پاسخ

یک دیدگاه بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

ضبط پیام صوتی

زمان هر پیام صوتی 4 دقیقه است