تجربه ای که در این زمینه پیدا کردم اینه که به علت اینکه نتونستم تو کامپایلر آرایه عکس رو به صورت فلش یعنی [ 9800]flash unsigned char picture تعریف کنم این مقادیر نمیتونه در رم 2 کیلو بایتی ذخیره بشه و بعد از پروگرم کردن میکرو هنگ میکنه.
چون بعد کامپایل مینویسه 480.5 درصد از ظرفیت رم پرشده یعنی 4.8 برابر بیشتر از ظرفیت 2048 بایتی دیتا میخواد پر بشه ولی بدون خطا کامپایل میشه.
چون اگه با احتساب عکس 16 بیتی یه عکس 70*70 به اندازه 4900 ضرب در 2 (16 بیتی هست نه 8 بیتی پس به یه 2 هم ضرب میشه) میشه 9800 که تقریبا محاسبات درست در میاد.
چرا تو winavr gcc نمیشه مقادیر رو به صورت flash ذخیره کرد.
تو کدویژن این کار به سادگی میسر است.
const هم به درد نمیخوره چون یه چیز دیگه س و مقادیر رو فقط به صورت ثابت ذخیره میکنه نه متغیر اونم تو ram .
من با mega32 و lcd n96 تونسته بودم عکس bmp با رزولیشن 121*121 رو نمایش بدم ولی با تفاسیر بالا نتونستم با همون mega32 و 1661 بیشتر از 31*31 رو نشون بدم.
اساتید نکته ای میدونن؟
چرا نمیشه تو winavr متغیرها رو به صورت flash ذخیره کرد تا با محدودیت ram کمتری مواجه شد؟
چون بعد کامپایل مینویسه 480.5 درصد از ظرفیت رم پرشده یعنی 4.8 برابر بیشتر از ظرفیت 2048 بایتی دیتا میخواد پر بشه ولی بدون خطا کامپایل میشه.
چون اگه با احتساب عکس 16 بیتی یه عکس 70*70 به اندازه 4900 ضرب در 2 (16 بیتی هست نه 8 بیتی پس به یه 2 هم ضرب میشه) میشه 9800 که تقریبا محاسبات درست در میاد.
چرا تو winavr gcc نمیشه مقادیر رو به صورت flash ذخیره کرد.
تو کدویژن این کار به سادگی میسر است.
const هم به درد نمیخوره چون یه چیز دیگه س و مقادیر رو فقط به صورت ثابت ذخیره میکنه نه متغیر اونم تو ram .
من با mega32 و lcd n96 تونسته بودم عکس bmp با رزولیشن 121*121 رو نمایش بدم ولی با تفاسیر بالا نتونستم با همون mega32 و 1661 بیشتر از 31*31 رو نشون بدم.
اساتید نکته ای میدونن؟
چرا نمیشه تو winavr متغیرها رو به صورت flash ذخیره کرد تا با محدودیت ram کمتری مواجه شد؟
دیدگاه