من یک بایت خاص که نیاز دارم را در آدرس 0x1FFF حافظه فلش Mega8 ریخته ام. میخواهم بدانم چگونه می توان در نرم افزار کدویژن به این بایت دسترسی پیدا کرد و آن را در یک رجیستر خاص ذخیره کرد. توضیح بیشتر اینکه این بایتی که در آن آدرس ذخیره میشود بایت کالیبراسیون اسیلاتور است و میآبایست پس از خوانده شدن درون رجیستر OSCCAL
اطلاعیه
Collapse
No announcement yet.
چگونگی خواندن یک بایت از یک آدرس مشخص از حافظه Flash در نرم افزار CodeVision
Collapse
X
-
پاسخ : چگونگی خواندن یک بایت از یک آدرس مشخص از حافظه Flash در نرم افزار CodeVision
کار کرد ؟!
اول یه پوینتر از نوع flash تعریف میکنیم ( قاعدات وقتی typeآ جداگانه به عنوان flashآ در cv وجود داره ، باید نوع پوینتریش هم فانکشنال عمل کنه ) .
بعد یه متغیر دیگه که ادرس رو توش قرار میدیم .
بعد اون ادرس رو تبدیل به یک پوینتر میکنیم بعد اون پوینتر ی که تعریق کردیم رو به این ادرس پوینت میکنیم . البطه بدون استفاده از متغیر addr و کست کردن اون هم باید بشه ولی من تاحالا با کدویژن تست نکردم این موردو پس رعایت احتیات زروری .
دیدگاه
-
پاسخ : چگونگی خواندن یک بایت از یک آدرس مشخص از حافظه Flash در نرم افزار CodeVision
اولا چرا با تعریف const اسم مستعار به مکان حافظه نمیدید و خودتون رو راحت نمی کنید؟
مثلا:
کد:const int CalibrationCode = 0xF067;
در ضمن غیر از راهی که آقای جهاندار فرموند می تونید از دستور اسمبلی LPM استفاده کنید (برای جزئیات مراجعه کنید به Instruction Set).
There is nothing so practical as a good theory. — Kurt Lewin, 1951
دیدگاه
-
پاسخ : چگونگی خواندن یک بایت از یک آدرس مشخص از حافظه Flash در نرم افزار CodeVision
با این دستور LPM به لوکاپ تیبل هم میشه دسترسی داشت.ولی اول باید آدرس مکانی که جدول از اونجا شروع میشه رو بدونیم.موقع کد نویسی چطور میشه فهمید آدرس ابتدای جدول چیه که اونو تو Z بریزیم و به دیتای داخل جدول دسترسی داشته باشیم؟
دیدگاه
دیدگاه