PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : خواندن يك بايت، از آدرس مشخص از ح



BiM31852569
14-06-2008, 15:43
من يك بايت خاص كه نياز دارم را در آدرس 0x1FFF حافظه فلش Mega8 ريخته ام. ميخواهم بدانم چگونه مي توان در نرم افزار كدويژن به اين بايت دسترسي پيدا كرد و آن را در يك رجيستر خاص ذخيره كرد. توضيح بيشتر اينكه اين بايتي كه در آن آدرس ذخيره ميشود بايت كاليبراسيون اسيلاتور است و مي‌بايست پس از خوانده شدن درون رجيستر OSCCAL بريزم. ممنون ميشوم مرا راهنمائي كنيد.

alitaroosheh
14-06-2008, 22:46
این برنامه فقط برای همین کار نوشتم و کار دیگه ای نمی کنه راستی اگه تست کردید بگید کار کرد یا نه

You can see links before reply

saeed_niknami
15-06-2008, 12:35
با سلام

اگه مي خواهي يه بايت ازفلش رو بخوني بايد از اشاره گر ها استفاده كني

مثله


#define location 0x1FFF

uchar var;

var=*location;

ابتدا آدرسشو مي توني با عملگر & برگردوني و با عملگر * محتوا شو بخوني و در متغيير ديگه اي بداري



اين كليش بود

alitaroosheh
15-06-2008, 21:16
يه سوال از سعيداقا داشتم:

ادرس 1FFF يعني 8191 كه از ROM هستش و شما داريد توش مقدار قرار ميديد كه توي AVR فقط توي حالت bootloader ميشه اين كار رو كرد(البته اين صحبت طبق چيزيه كه شما بالا نوشتيد)


اصلا دوست ما ميخوان از اين حافظه بخونن نه چيزي توش بنويسن

اگه به ساختار زبان هاي سطح بالا آشنا هستيد جدول هايي به نام lookup tabel هستن كه براي اينكار ها بوجود اومدن(همون ديتا بيسها) و همشون از ديد اسمبلي كاري رو كه تو برنامه من انجام دادم انجام ميدن

saeed_niknami
15-06-2008, 21:36
با سلام

علي جون من در مثال بالا اصلا مقداري قرار ندادم
فقط يه ثابت تعريف كردم و گفتم محتواي خانه 1 اف اف اف رو تو متغيير وار بذاره

اين جور هم ميشه و با تابع peekb() peekw () ميشه البته تو كد ويژن

BiM31852569
17-06-2008, 00:17
دوست عزيز دستورات PEEKB و PEEKW فقط مربوط به خواندن از SRAM هستند. 8O

saeed_niknami
17-06-2008, 20:58
با سلام

عزيز مي توني با دستور كار كني

unsigned int flash *ptr ; ptr = (unsigned int flash*) 0x0000; x = *ptr;

alitaroosheh
17-06-2008, 21:28
مي بخشيد ولي من بد منظورمرو رسوندم دستورهايي كه اقا سعيد نوشتن فكر كنم يكم اشكال داره

پوينتر ها به يه جايي از ram اشاره دارن اما شما به يه جايي از rom اشاره كرديد

من نميدونم كد ويژن اين كار رو ميكنه يا نه ولي كلا از نظر ساختاري به نظر مشكل داره

saeed_niknami
17-06-2008, 21:50
با سلام

در سوال دوستمون من الان متوجه شدم

مي خواهن بخونن نمي خوان بنويسن
در صورت نوشتن از بوت لودر استفاده مي كنيم

من تاپيك بالا رو تغيير دادم

من خودم تو تابلو روان از اين خاصيت استفاده كردم

BiM31852569
04-07-2008, 14:51
جواب آخرو بدون شك و ترديد و تست شده خودم ميدم.
flash unsigned *p=0x1FFF;
OSCCAL=*p;
و ديگر هيچ!!!