با سلام خدمت همه دوستان ارزشمند و مدیر محترم
به اختصار عرض کنم که خانواده PIC16F87x که در بازار ایران بهتر در دسترس هستند تا بقیه و قیمتی هم منصفانه دارند ، حافظه EEPROM در دسترس کاربر برای خواندن و نوشتن در ضمن اجرای برنامه فقط هشت بیتی دارند. با این مقدمه سوالم را اینگونه مطرح می کنم که :
در ضمن برنامه لازم شده است که با متغیرهایی بیش از 8 بیت کار کنیم و می خواهیم آنها را در EEPROM ذخیره کنیم . چه راه کاری (که خودتان جواب گرفته باشید) را سراغ دارید؟
در محیط PICBASIC من این کار را انجام داده ام و نتیجه نداشت:
با فرض اینکه متغیر ما P var word باشد
1) برای ذخیره و خواندن Write 0,p.LowByte & Write 2,p.HighByte
و منطقاً Read2,p.HighByte
2) شیفت دادن به اندازه 8 بیت و 16 بیت در یک متغیر ثانویه هم نتیجه ای نداشت !
شاید اگر بتوانیم عدد دسیمال را به باینری تبدیل کنیم آنوقت بشود کاری کرد که من هر چه گشتم چیزی نیافتم. به عنوان مثال ضرب کردن در 256 و جمع با مقدار کم ارزش تر.
منتظر جواب و راهنمایی دوستان هستم.
با احترام
به اختصار عرض کنم که خانواده PIC16F87x که در بازار ایران بهتر در دسترس هستند تا بقیه و قیمتی هم منصفانه دارند ، حافظه EEPROM در دسترس کاربر برای خواندن و نوشتن در ضمن اجرای برنامه فقط هشت بیتی دارند. با این مقدمه سوالم را اینگونه مطرح می کنم که :
در ضمن برنامه لازم شده است که با متغیرهایی بیش از 8 بیت کار کنیم و می خواهیم آنها را در EEPROM ذخیره کنیم . چه راه کاری (که خودتان جواب گرفته باشید) را سراغ دارید؟
در محیط PICBASIC من این کار را انجام داده ام و نتیجه نداشت:
با فرض اینکه متغیر ما P var word باشد
1) برای ذخیره و خواندن Write 0,p.LowByte & Write 2,p.HighByte
و منطقاً Read2,p.HighByte
2) شیفت دادن به اندازه 8 بیت و 16 بیت در یک متغیر ثانویه هم نتیجه ای نداشت !
شاید اگر بتوانیم عدد دسیمال را به باینری تبدیل کنیم آنوقت بشود کاری کرد که من هر چه گشتم چیزی نیافتم. به عنوان مثال ضرب کردن در 256 و جمع با مقدار کم ارزش تر.
منتظر جواب و راهنمایی دوستان هستم.
با احترام
دیدگاه