ايران ويج

نسخه‌ی کامل: سوالهای برنامه نویسی با کامپایلر BASCOM
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
نگرفتم
یعنی من هر کدوم از اینیبلا رو فعال کنم خوب اون lcd روشن میشه بعد من متنمو میزارم توش تا اینجا درست
ولی مثلا من میخوامسه متن مختلفو همزمان نشون بدم رو همشون
برا این کار باید همه رو یک کنم دیگه درسته؟
اونم میشه ولی بهتره تک تک بنویسی و بری ال سی دی بعدی !!!
سلام به همگی . هر چی جست و جو کردم نبود . دستورات
$hwstack
$swstack
$framesize
در برنامه بسکام چی کار می کنند . help نرم افزار بسکام رو هم خوندم چیزی نفهمیدم.
هلپ بسکام که به خوبی توضیح داده !
واسه اطلاعات بیشتر هلپ رو نگاه کن !!!

کد:
$HWSTACK
Sets the available space for the Hardware stack


کد:
$SWSTACK
Sets the available space for the software stack


کد:
$FRAMESIZE
Sets the available space for the frame

فکر کنم معنی هاش مشخص باشه و نیازی به توضیح نباشه !!
(۰۵-مهر-۱۳۸۹, ۱۳:۰۰:۴۵)Gawky نوشته است: [ -> ]هلپ بسکام که به خوبی توضیح داده !
واسه اطلاعات بیشتر هلپ رو نگاه کن !!!

کد:
$HWSTACK
Sets the available space for the Hardware stack


کد:
$SWSTACK
Sets the available space for the software stack


کد:
$FRAMESIZE
Sets the available space for the frame

فکر کنم معنی هاش مشخص باشه و نیازی به توضیح نباشه !!

با تشکر از پاسختون . میشه توضیح در مورد استک نرم افزاری و frame دهید چون من تا حالا با آن برخورد نکردم . همچنین استک سخت افزاری در کدام فضا از فضای SRAM ذخیره می شود . منظورم این است که در قسمت I/O memory یا internal data sram یا غیره ذخیره می شود . همچنین تعیین فضای مورد نیاز برای آنها ، حساب دقیقی داره یااز آزمون و خطا استفاده کنیم . همجنین عددی (var) که روبه روی اون می نویسند مثلا $hwstack = 32 این 32 یعنی 32 بایت یا 32 کیلو بایت .
تمام اینها قسمتی از فضای ram هستش !!!

HWSTACK که همون فضای استک پویینتر هستش !!!
هنگامی که برنامه به یه زیر روال ( gosub ) میره خط برنامه رو تو استک پویینتر نگه می داره و موقع برگشت از استک پویینتر می خونه تا ببینه کجا برگرده !!!
نمی دونم مفهوم رو گفتم یا نه !
اگه میکروپروسسور پاس کرده باشین می دونین استک پویینتر کجاست !


SWSTACK هم فضای پشته رو تعیین می کنه !!
چون هربار بره به زیر روال یکی به پشته اضافه می کنه و موقع برگشت ازش کم می کنه !!


FRAMESIZE هم نمی دونم !
تو توضیحات بسکام در مورد ارزش اعشار صحبت کرده بود !!
منظورشو نفهمیدم !!!


مهندس اگه این پارامتر ها رو هم تنظیم نکردی مهم نیست !
چون تو option بصورت فابریکی یه چیزهایی تنظیم دهش !!




(۰۵-مهر-۱۳۸۹, ۱۳:۵۵:۱۳)Gawky نوشته است: [ -> ]تمام اینها قسمتی از فضای ram هستش !!!

HWSTACK که همون فضای استک پویینتر هستش !!!
هنگامی که برنامه به یه زیر روال ( gosub ) میره خط برنامه رو تو استک پویینتر نگه می داره و موقع برگشت از استک پویینتر می خونه تا ببینه کجا برگرده !!!
نمی دونم مفهوم رو گفتم یا نه !
اگه میکروپروسسور پاس کرده باشین می دونین استک پویینتر کجاست !


SWSTACK هم فضای پشته رو تعیین می کنه !!
چون هربار بره به زیر روال یکی به پشته اضافه می کنه و موقع برگشت ازش کم می کنه !!


FRAMESIZE هم نمی دونم !
تو توضیحات بسکام در مورد ارزش اعشار صحبت کرده بود !!
منظورشو نفهمیدم !!!


مهندس اگه این پارامتر ها رو هم تنظیم نکردی مهم نیست !
چون تو option بصورت فابریکی یه چیزهایی تنظیم دهش !!
با تشکر از پاسختون . اما منظورتونو از فضای RAM نفهمیدم . منظورتون اگه SRAM هست کدوم قسمت از اون . در مورداینکه تعیین فضای مورد نیاز برای آنها ، حساب دقیقی داره یااز آزمون و خطا استفاده کنیم . همجنین عددی (var) که روبه روی اون می نویسند مثلا $hwstack = 32 این 32 یعنی 32 بایت یا 32 کیلو بایت چیزی دستگیرم نشد . در مورد پشته هم یه کم بیشتر توضیح بدی یا لینکی معرفی کنی ممنون می شم .
بر حسب بایت هستش !

تو SRAM ذخیره میشه !!

واسه اینه که از فضای رم استفاده مفید کنین !
مثلا شما اگه زیرروال ندارین پس هیچ فضایی رو به این قسمت اختصاص ندین !

جاشو نمی دونم !
به دیتاشیت مراجعه کنین !!


واسه پشته و استک پویینتر و اینجور چیزها هم کتب میکروپروسسور و اینجور چیزها رو بخونین !
مثل کتاب z80 و 8051 و .......
مخصوصا کتب 8051 این قضیه رو خوب توضیح دادن !!


برای پایه E ال سی دی باید یه لبه پایین رونده بهش بدی و برای دستور و دیتا هم باید rs رو 0و1بدی مهرداد جان
یعنی وقتی مقدارو ریختی رو پورت یه ست-ریست یا همون لبه پایین رونده باید به ال سی دی بدی
باید همه کد های دستوری ال سی دی هم داشته باشی
توی کتابها یا دیتاشیت ال سی دی ها هست
راستی علی جون اون قضیه کامپایل مستقیم بسکام رو از استادمون پرسیدم.
حرف شما درست بودBiggrin
یعنی مستقیما کامپایل میکنه .نه اونی که من گفتم اول به سی و اسمبلی و هگز

استک پوینتر خودش رجیستر داره که جز طبقه دوم فضای رم که مربوط به تنظیمات ابزار جانبی میکرو هستشI/O (دقیق یادم نیست)


برای کتاب هم منم کتاب معماری کامپیوتر موریس مانو رو پیشنهاد میکنم.هرچند با اونایی که علی معرفی کرده مشکلت حله حله....
موفق باشید
فکر کنم فضایی ای که می شه برای استک در نظر گرفت با توجه به اینکه تو دیتاشیت اومده
The Stack is effectively allocated in the general data SRAM, and
consequently the stack size is only limited by the total SRAM size and the usage of the sram
می شه از کل فضای sram هم برای استک استفاده کرد .
یه sample تو خود بسکام هست به نام stack.bas در مورد تشخیص فضای لازم برای استک سخت افزاری و نرم افزاری و framesize در یک برنامه . ما که نفهمیدیم چی گفت اگه شما فهمیدید به ما هم بگید . همچنین دستور $DBG به بررسی فضای سخت افزاری و نرم افزاری و frame مورد نیاز هنگام استفاده از UART می پردازه . راستش کاملا نفهمیدم واسه همینم هیچی نمی گم ولی اگه کسی هلپ بسکام رو خوند و فهمید به ما هم بگه خوشحال می شیم .در ضمن با توجه به اونچه تو هلپ نرم افزار بسکام در قسمت stcheck گفنه framesize وقتی استفاده می شه که شما از تبدیل رشته به عدد در برنامتون استفاده کرده باشید و از 4 تا 24 بایت نیاز داره . همچنین زمانی که شما یک متغیر را در فراخوانی یک زیر برنامه مثل VALUE (BYVAL) یا در دستوری مثل LOCAL LONG ارجاع می دید از اون استفاده می شه. وقتی هم پر شه از استک نرم افزاری بعدش سخت افزاری استفاده می کنه . از استک نرم افزاری هم زمانی استفاده می شه که شما متغیر محلی در یک زیربرنامه یا تابع تعریف کردید که به ازای هر متغیر هم 2 بایت استفاده می شه و وقتی هم زیربرنامه به پایان برسه پاک می شه .
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23