قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

kaliloo
:: مهندس ::
تاريخ التسجيل: May 2013
الدولة: اليمن - عدن
المشاركات: 30
نشاط [ kaliloo ]
قوة السمعة:0
قديم 26-08-2015, 06:45 PM المشاركة 1   
Exclamation not enough ram for call stack رسالة الخطاء Twitter FaceBook Google+



السلام عليكم ورحمة الله.

لدي مشكلة ضهور رساله الخطاء " not enough ram for call stack " وذلك عند كتابة امر معين او عملية حسابية في البرنامج الفرعي او برنامج المقاطعة ... رغم ان الرام المستخدم مازلال لايتجاوز 30 % .. فهل يوجد حدود للذاكرة المخصصة للبرامج الفرعية .والمقاطعات ...
كيف يتم التعامل مع العمليات الحسابية التي تحتوي على ارقام عشرية ( كسرية _float ) حتى لاتستهلك ذاكرة الرام اثناء التنفيذ؟؟..
مثال :
timing=timer1*(f/12. + 1/9 - t/45.) -1190

المترجم :micro C pro 6.4
pic16f877

وتقبلوا تحياتي...

اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 27-08-2015, 07:59 AM المشاركة 2   
افتراضي


أخى
عندما تطلب وظيفة من داخل برنامج يحفظ مكان الرجوع فى ذاكرة تسمى Stack
هذا الميكرو لا يسمح بذاكرة أكثر من 8 خانات أى تطلب وظيفة فهذه واحدة و المقاطعة هذه ثانية و الحسابات كل قوسين واحدة و لو فتحت داخلهما قوسين تكون واحدة أخرى و الرسالة تقول أن هذه الذاكرة قد نفذت أى طلبت أكثر من 8 انتقالات متداخلة و التاسع لا مكان له
أيضا الجأ لهذه الحسابات العشرية عندما يكون ذلك حتما لا مفر منه فمثلا فى
f/12. و t/45 ما لم يكن المتغيرين أصلا كسر عشرى فلا داعى فبعد الحساب و استهلاك الذاكرة تطرح 1190 وهو رقم كبير الكسر بالنسبة له لا يذكر ولا يذكر بالنسبة له القيمة 1/9 فى المعادلة
ثانيا لو هناك سبب هام غير واضح لى فيمكنك تعريف ثابت
كود:
 Const Ninth  = 1/9
و المترجم سيحسبها لك و يضعها فى المعادلة ويوفر عليك Real Time Calculation
ولو مازال هناك مشكلة يمكن تقسيم المعادلة لعدة خطوات لتوفير ذاكرة المقاطعة


اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

kaliloo
:: مهندس ::
تاريخ التسجيل: May 2013
الدولة: اليمن - عدن
المشاركات: 30
نشاط [ kaliloo ]
قوة السمعة:0
قديم 27-08-2015, 06:52 PM المشاركة 3   
افتراضي


اشكرك كثيراً .. اخي ماجد على المعلومات القيمة... سيتم التنفيذ..

بالنسبة للكسور الصغيرة . الغرض منها تحديد نسبة ..مثل النسبة المئويه تماماً.. اي انه يتم ضربها بمتغير خارج القوس ... امثلا ا.. اريد ان اخذ 1/9 من المتغير x واجمعها مع 1/4 المتغير y ....وهكذا...

سؤال : انا احتاج من الكسر رقمين فقط بعد العلامة العشرية ..هل من الممكن عند تعريف المتغير الكسري (float ) تحديد عدد الارقام بعد الفاصلة العشرية ... لهدف توفير الذاكرة ...

تحياتي لك .. اخي ماجد


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 28-08-2015, 06:30 AM المشاركة 4   
افتراضي


اشكرك كثيراً .. اخي ماجد على المعلومات القيمة... سيتم التنفيذ..
بالنسبة للكسور الصغيرة . الغرض منها تحديد نسبة ..مثل النسبة المئويه تماماً.. اي انه يتم ضربها بمتغير خارج القوس ... امثلا ا.. اريد ان اخذ 1/9 من المتغير x واجمعها مع 1/4 المتغير y ....وهكذا...
معذرة انا أعلم ذلك و المعادلة واضحة وليس هذا ما اتحدث عنه إطلاقا
أنا اتحدث عن ما اريد و كيف التف حول المعوقات للوصول إليه

انت تطرح 1190 من الناتج وهذا رقم كبير بالنسبة للكسور لذا حينما اتعرض لمسألة مشابهة لو قيمت الأعداد التى اتناولها قد اكتفى بالقسمة بالرقم الصحيح و أخذ الباقى بالعلاقة
MOD
عموما انت أدرى بما تريد
سؤال : انا احتاج من الكسر رقمين فقط بعد العلامة العشرية ..هل من الممكن عند تعريف المتغير الكسري (float ) تحديد عدد الارقام بعد الفاصلة العشرية ... لهدف توفير الذاكرة ...
تحياتي لك .. اخي ماجد
لا يمكن تحديد الرقم العشرى لكن هذا ما كنت أقوله
ما سأفعلة أن اضرب الرقم * 100 و مازال العدد صحيح وليس Float و اكمل حساباتى كلها على 100 ضعف ثم فى العرض على الشاشة اضع علامه حيث اريد


kaliloo
:: مهندس ::
تاريخ التسجيل: May 2013
الدولة: اليمن - عدن
المشاركات: 30
نشاط [ kaliloo ]
قوة السمعة:0
قديم 28-08-2015, 03:09 PM المشاركة 5   
افتراضي


اشكرك كثيراً على الاهتمام .. اخي ماجد

تحياتي لك...

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 09:48 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025