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

برنامه های کدویژن و بسکام مرتبط | بخش چهارم آموزش کاربردی AVR

آموزش کاربردی AVR - بخش چهارم

برنامه های کدویژن و بسکام مرتبط با بخش سوم

در قسمت قبلی درباره آموزش سخت افزار میکروکنترلر Pinout و کار با رجیسترهای AVR صحبت کردیم و در این قسمت از آموزش AVR قصد داریم بیشتر وارد محیط برنامه نویسی شویم و نکاتی که در جلسه قبل گفته شد را کدنویسی کنیم.

شاید برای شما مفید باشد: آموزش AVR از 0 تا 100 بصورت کاملا رایگان

همانطور که گفته شد، می‌خواهیم در ابتدا پین PB0 خروجی تعریف شود و در مرحله‌ی بعد مقدار High در آن قرار بگیرد.

به کد زیر که به زبان C در محیط کدویژن نوشته شده است دقت کنید:

شکل 1

شکل 1

در ابتدا در خط 2 فایلی که در کامپایلر موجود است یعنی فایل mega32.h داخل برنامه include می‌شود. در این تعریف رجیسترهای ATMEGA32 قراردارد که با include کردن آن کامپایلر متوجه می‌شود که چیپ موردنظر ما ATMEGA32 است.

در خط 5 پین PB0 خروجی، و در خط 6 همان پین High می‌شود. اگر خط 6 وجود نداشته باشد، چون بصورت پیش فرض مقدار PORTB برای PB0 صفراست، خروجی این پین low می‌شود.

در کدنویسی اصولی و صحیح، مقداردهی رجیسترها با اعداد اصولی نیست و بهتر است خطوط 5 و 6 بصورت زیر نوشته شوند:
برنامه های کدویژن و بسکام مرتبط | بخش چهارم آموزش کاربردی AVR

شکل 2

در خط 5 در شکل 2 مقدار 1 به اندازه صفربیت به چپ شیفت پیدا کرده است. خوانایی این کد بهتر از کد نوشته شده در شکل 1 است.

حال کد قبلی را به زبان بسکام می‌نویسیم:

برنامه های کدویژن و بسکام مرتبط | بخش چهارم آموزش کاربردی AVR

شکل 3

در خط 1 مشابه کد نوشته شده در شکل1 کامپایلر متوجه می‌شود که چیپ موردنظر ATMEGA32 است.

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

ولی حسن این دستور در کدنویسی این است که اگر تاخیری در عملیات برنامه وجود داشته باشد، بااطلاع از فرکانس اسیلاتور سیستم است. اگر در بسکام بخواهیم پین خاصی از یک پورت را تغییر بدهیم از این دستور خط 3 استفاده می‌کنیم.

در بسکام با نوشتن خط 4 مقدار PB0 ، Set یا همان 1 خواهد شد و هم چنین با نوشتن reset این پین را می توان صفر و یا با نوشتن toggle مقدار پین را not کرد.

خطوط 5 و 6 همان حلقه بی نهایت while را برای برنامه تعریف می‌کنند.

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

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

دیدگاهتان را بنویسید

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