قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
أخواني لقد وقعت في مشكله لا اجد لها حل الي الأن ..
بختصار .. عندي ميكرو كنترولر مساحة ذاكرة EEPROM هي 256 خانه وعندي رقم هوا اكبرمن ال 256 خانه فما هوا الحل ..
اريد تخزين قيمة متغير قيمته اكبر من مساحة ذاكرة EEPROM
اريد ان اقسم هذا الرقم علي ثلاث متغيرات وتخزينها في ثلان عناوين من ذاكرة EEPROM .. وبعد ذالك القرأه من من ذاكرة EEPROM من الثلاث عناوين المسبق التخزين فيهم واسناد قيمتهم الي ثلاث متغيرات واسناد قيمة الثلاث متغيرات الي متغير واحد رابع وبعد ذالك اتعامل مع قيمه المتغير الرابع في البرنامج ..
حاولت تنفيذ هذة الطريقه ولم افلح فيها
برجاء من لديه حل ان يضع مثال هنا ..
لقد حاولت صنع طريقه بمعادله حسابيه لكي افكك الرقم الي ثلاث اجزاء وهم مئات / عشرات / كسر العشري ..
وهذه هي الطريقه
وهنا هنخلي قيمة المتغير Temp1 مثلا 377
وهنا قيمه المتغير Temp2 = 3 و المتغير Temp3 = 7 و المتغير Temp4 = 7 ولكن هذه الأرقام فقدت القيمه المكانيه ف علي سبيل المثال المتغير Temp2 = 3 ومن المفترض ان = 300
وهكذا مع باقي المتغيرات لأن قيمة المتغير Temp1 =377 وهنا تم تفكيك المتغير Temp1 الي ثلاث ارقام منفصلين واسناد كل رقم الي متغير اخر ولكي اعيد القيمه المكانيه لهذه الأرقام تم استخدام هذه المعادله
واسناد الناتج للمتغير نفسه لكي تصبح قيمته 300 لأن هذا المتغير كان = 3 في المعادله اعلاه
وهذا مع باقي المتغيرات
كود:
Temp3 = Temp3* 10 ; Temp4 = Temp4* 1;
وبعد ذالك تم جمع هذه المتغيرات واسناد الناتج الي المتغير Temp1
كود:
Temp1 = Temp2+ Temp3 + Temp4;
السؤال هل هذه الطريقه صحيحه ام توجد طريقه اكثر اختصارااا .. لأن هذه الطريقه بتطلع ارقام غير مظبوطه
وطبعااا كل هذا الكود لكي اتغلب علي مشكله الكتابه في ذاكرة الأبروم وللأسف ذاكرة الأبروم لا استطيع تسجيل اكثر من رقم 256 وانا هنا اريد ان اسجل في ذاكرة الأبروم 377 فما فوق هذا الرقم
فضلا من لديه فكره لتجاوز هذه المشكله ان يضع لها مثال
وشكرااا للجميع
التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 17-01-2019 الساعة 10:32 PM
معذرة السؤال غير واضح
أى متعير هذا الذى يحتاج أكبر من 256 بايت؟؟؟؟
أعلى متغير استخدم فى اللغات العالية هو المالى و هو 8 بايت 4 أرقام عشرية و الباقى صحيح للتعامل مع الميزانيات الكبيرة وهذا المتغير لم يعرف للميكرو لعدم الحاجة إليه و أى رقم أقصاه 4 بايت = 4294967296 أى 4 مليار
معذرة أخى الكريم
هو طلب ثلاثة بايت وليس اثنين
ثم كيف نقسم علي مائة فى التجزئة و نضرب في 256 في التجميع
وما جدوي الحساب ووظيفة التعامل موفرة و بكود اقل؟
معذرة السؤال غير واضح
أى متعير هذا الذى يحتاج أكبر من 256 بايت؟؟؟؟
أعلى متغير استخدم فى اللغات العالية هو المالى و هو 8 بايت 4 أرقام عشرية و الباقى صحيح للتعامل مع الميزانيات الكبيرة وهذا المتغير لم يعرف للميكرو لعدم الحاجة إليه و أى رقم أقصاه 4 بايت = 4294967296 أى 4 مليار
السلام عليكم ورحمه الله
اشكرك استاذي الفاضل علي اهتمامك ...
أخي كيف يمكنني تخزين رقم في ذاكره ابروم اكبر من 256 اقصد رقم وليث بايت
بأختصار عند الكتابه علي ذاكرة الأبرم هذا الرقم 256 وعند القرأه منها بتطلع الناتج مظبوط ولكن لو تجاوز هذا الرقم ثلا واصبح 300 عند القرائه بتطلع النتائج غير صحيحه
ايذا كيف يمكنني تخزين رقم قيمته الرقميه اكبر من 256
وبالمناسبه ما هي الطريقه اللتي اتعامل معها مع هذه النقطه ""ففى المساعدة وظائف Low,High,Higher,Highest""
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:36 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)