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

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

سجاد_s
:: مهندس ::
تاريخ التسجيل: Aug 2013
المشاركات: 25
نشاط [ سجاد_s ]
قوة السمعة:0
قديم 03-08-2013, 05:14 PM المشاركة 1   
افتراضي سؤال حــــــــــــول الــــــــــــــــــــــــــــــــــدوال Twitter FaceBook Google+



السلام عليكم ورحمة الله وبركاته
عندي الدالة charge
عند يصبح الجهد 147 يستدعي الدالة
كيف اجل البك يبقى داخل الدالة لحين نزول الجهد اقل من 147
ويخرج من الدالة وينتقل الى الامر الاحق

كود:
if(nnn>=147){charge();}

اعلانات

عمار سعيد
:: مهندس ::
تاريخ التسجيل: Aug 2011
الدولة: سوريا الحره
المشاركات: 42
نشاط [ عمار سعيد ]
قوة السمعة:0
قديم 03-08-2013, 06:26 PM المشاركة 2   
افتراضي


و عليكم السلام
أخي الكريم بكل بساطه اكتب الأمر هكذا وسيبقى داخل الداله طالما الشرط متحقق
كود:
while(nnn>=147){charge();}
اتمنى لك التوفيق

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

سجاد_s
:: مهندس ::
تاريخ التسجيل: Aug 2013
المشاركات: 25
نشاط [ سجاد_s ]
قوة السمعة:0
قديم 03-08-2013, 07:23 PM المشاركة 3   
افتراضي


ا
اخي عماد اشكرك على الرد الله يبارك فيك
جربت الكود ولكن عند وصول الجهد 147 يدخل البك في امر
الدالة charge ولايخرج منها الى الدالة cck حتى بعد نزول
قيمة الجهد

كود:
while(1)
 {
      ADC_VVV = ADC_Read(0);  nnn =(ADC_VVV*5.4)/10;

       while(nnn>=145){charge();}
       cck ();  }}


عمار سعيد
:: مهندس ::
تاريخ التسجيل: Aug 2011
الدولة: سوريا الحره
المشاركات: 42
نشاط [ عمار سعيد ]
قوة السمعة:0
قديم 03-08-2013, 10:31 PM المشاركة 4   
افتراضي


طيب أخي بنهاية الدالة charge ضع هذا الأمر
كود:
if(nnn>=147)return;


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 04-08-2013, 05:50 PM المشاركة 5   
افتراضي


ا
اخي عماد اشكرك على الرد الله يبارك فيك
جربت الكود ولكن عند وصول الجهد 147 يدخل البك في امر
الدالة charge ولايخرج منها الى الدالة cck حتى بعد نزول
قيمة الجهد

كود:
while(1)
 {
      ADC_VVV = ADC_Read(0);  nnn =(ADC_VVV*5.4)/10;

       while(nnn>=145){charge();}
       cck ();  }}
سلام عليكم
طيب يااخي كيف يصل الجهد الى 147 ومعادله المكتوبه وهي تقرا من channel 0 وهذقيمه اقصى قيمه لها 5 فولت ثم تضربها في 5.4 ثم تقسمها على 10
لايمكن ان يتحقق شرط ارجوا اعاده نظر في معادله وشكر


armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:0
قديم 05-08-2013, 04:46 AM المشاركة 6   
افتراضي


لا أظن أنك تحتاج لاستخدام while بدلا من if, أو لاستخدام return, و لكن إذا كنت متأكدا فعلا من أن دالة cck لا يتم تنفيذها, فهذا معناه أن دالة charge بداخلها ما يمنع الميكروكنترولر من المواصلة, غالبا جملة while محتوية علي شرط يتحقق دائما مثل
كود:
while(1)
ابحث بداخل دالة charge عن هذه الحلقة التكرارية loop ثم ضع داخلها الكود التالي:

كود:
if(ADC_Read(0)<147) break;
بالنسبة لسؤال الأخ حسن: قيمة 147 ليست قيمة الجهد و لكنها قيمة ADC بداخل الميكروكنترولر, أي أنها حسب الكود المكتوب تتراوح ما بين 0 و 1023*5.4\10 أي ما بين 0 و 536


سجاد_s
:: مهندس ::
تاريخ التسجيل: Aug 2013
المشاركات: 25
نشاط [ سجاد_s ]
قوة السمعة:0
قديم 06-08-2013, 02:35 PM المشاركة 7   
افتراضي


شكرا اخواني المشكلة تم حلها بالامر break
كود:
while(nnn>=147){charge();  break;}


armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:0
قديم 07-08-2013, 07:17 AM المشاركة 8   
افتراضي


شكرا اخواني المشكلة تم حلها بالامر break
كود:
while(nnn>=147){charge();  break;}
وضع break في هذا المكان يجعلها مناظرة للشكل التالي:
كود:
if(nnn>=145){charge();}
يمكنك إذا الاستغناء عن while

إضافة رد

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

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

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


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

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