سلام:
راستش خودمم دقیقاً نمیدونم.اما کتابخونه های کد ویژن رو که نگاه کردم خیلی از دستورها به اسمبلی ترجمه میشن.مثلاً دستوراتی که واسه LCD هستن.(به lcd.h یه نگاه بندازین).حالا اینکه خود این کدهای اسمبلی چطوری هگز میشن؟
بعضی از دستورات هم به اسمبلی تبدیل نمیشن(delay.h رو نگاه کنید.)و مستقیماً همونی که از C هست ترجمه میشه.
امیدوارم دوستان بیشتر و بهتر از من توضیح بدن.
برای کامپایل کردن پروژه از منوی Project گزینه Compile را انتخاب می کنیم. با این کار خطاها و Error های برنامه در پنجره Navigator و یا در قسمت Messages نمایش داده می شود. با کامپایل کردن پروژه فایلهای جدیدی همنام با پروژه در محل ذخیره پروژه ایجاد می شود ولی فایل مورد نیاز برای پروگرم کردن (فایل Hex) ایجاد نمی شود. برای ایجاد فایل Hex باید در منوی Project گزینهMakeرا انتخاب یا بر روی عکس نشون داده شده در نوار ابزار کلیک کنیم.
شما موقعی که پروژه تون رو کامپایل می کنید اگه برنامه توی خطای نحوی داشته باشه و عمل کامپایل ناقص انجام میشه همون زدن گزینه project > compile
ولی اگه توی قسمت project > make از گزینه make استفاده بکنید هم عمل کامپایل انجام میشه و بعد اون فایل اسمبلی که ایجاد شده به فایل هگز تبدیل میشه
پس یکی از مشکلات شما میتونه درست کامپایل نشدن فایل سورس زبان سی تون باشه
خوب اگه درست کدتون make یا کامپایل بشه باید پنجره Information بالا بیاد
ممنون از توضیحاتتون ، یه سوال دیگه . معادل دستور debounce تو کدویژن چیه ؟ DEBOUNCE Px.y , state , label [ , SUB] اگه کلید فشرده شد میکرو بره فلان کارو انجام بده ، دستور خاصی وجود داره یا باید با دستور if واسه کد بنویسیم ؟
سوال بعدی : مقا ومت pull up بصورت پیش فرض ست شده ؟ یا باید بشورت دستی ست بشه ؟
سلام .
یه مقاله تحت عنوان " آموزش پروگرم کردن AVR با نرم افزار CodeVision و شرح کامل فیوزبیت ها " تو وبلاگم هست .
امیدوارم کمکت کنه .
موفق باشی . http://kamangari.blogfa.com/
در مورد Configuration محیط CodeWizard برای تنظیمات LCD همونطور که جناب بادامی نجات فرمودن،آباید در انتخاب نوع چیپ بسیار دقت کنید .. در مورد سوالی که فرمودید در ارتباط با اون دستور؛ اگه منظورتون یه جور اجرای خارج از روال باشه،آمیتونید از روتین وقفه استفاده کنید .. یعنی با به کار گیری یک وقفه، در زیر برنامه ی اون کد مورد نظرتون رو قید کنید و در طرف مقابل شرایط رو به گونه ای فراهم کنید که با فشردن باتن، یک فرمان فعال سازی (یه چیزی مثل یک Transition ..) برای وقفتون به اجرا در بیاد و با این کار عملا زیر برنامه ای که در روال وقفه تعریف کردید ، با یک نوع branch به اجرا در میاد .. البته در این branch مقدار pc ذخیره میشه تا بعد از اتمام کدهای روال وقفه، ادامه ی برنامه ها در حلقه ی Process انجام بشن ..
اما اگه منظورتون یک اجرای برنامه ی معمولی هست ،آبر حسب نیاز و امکانی که در نظر گرفتید میتونید از دستورات Conditional استفاده کنید .. مثلا همونطور که خودتون هم فرمودید میشه با یک ابراز شرط if روتین خواسته شده رو در برنامه قرار داد .. در مورد مقاومت هایPull Up هم که فرمودید باید بگم که وقتی شما توی قسمت CodeWizard و در گزینه های Ports این تنظیمات رو برای input و از نوع P تعریف میکنید در حقیقت به صورت سخت افزاری داخلی یک اتصال مقاومت 10K رو برای پایه هاتون در نظر گرفتید .. موفق باشید ..
حسام جان ممنون از لطفت و ، اگه میشه در مورد پیکر بندی تایمر نو مد نرمال یه توضیح واسم بدی یه نمونه برنامه هم بذاری که با تایمر صفر هر 1 ثانیه وقفه تایمر رخ بده
دیدگاه