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

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

TIME0
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
المشاركات: 277
نشاط [ TIME0 ]
قوة السمعة:0
قديم 26-07-2012, 09:22 AM المشاركة 1   
افتراضي كيف الخص هذا الكود بطريقة توفر المساحة Twitter FaceBook Google+



كود:
 
if(x>=10){CustomChar3(2,2);} if(x<=10) {lcd_out(2,2," ");} if(x>=15){CustomChar3(2,3);} if(x<=15){lcd_out(2,3," ");} if(x>=20){CustomChar3(2,4);} if(x<=20){lcd_out(2,4," ");} if(x>=25){CustomChar3(2,5);} if(x<=25){lcd_out(2,5," ");} if(x>=30){CustomChar3(2,6);} if(x<=30) {lcd_out(2,6," ");} if(x>=35){CustomChar3(2,7);} if(x<=35){lcd_out(2,7," ");} if(x>=40){CustomChar3(2,8);} if(x<=40){lcd_out(2,8," ");} if(x>=45){CustomChar3(2,9);} if(x<=45){lcd_out(2,9," ");} if(x>=50){CustomChar3(2,10);} if(x<=50) {lcd_out(2,10," ");} if(x>=55){CustomChar3(2,11);} if(x<=55){lcd_out(2,11," ");} if(x>=60){CustomChar3(2,12);} if(x<=60){lcd_out(2,12," ");} if(x>=65){CustomChar3(2,13);} if(x<=65){lcd_out(2,13," ");} if(x>=70){CustomChar3(2,14);} if(x<=70){lcd_out(2,14," ");} if(x>=75){CustomChar3(2,15);} if(x<=75){lcd_out(2,15," ");}



if(x>=10){CustomChar3(2,2);} if(x<=10) {lcd_out(2,2," ");}
if(x>=15){CustomChar3(2,3);} if(x<=13){lcd_out(2,3," ");}
if(x>=20){CustomChar3(2,4);} if(x<=20){lcd_out(2,4," ");}
if(x>=25){CustomChar3(2,5);} if(x<=25){lcd_out(2,5," ");}
if(x>=30){CustomChar3(2,6);} if(x<=30) {lcd_out(2,6," ");}
if(x>=35){CustomChar3(2,7);} if(x<=35){lcd_out(2,7," ");}
if(x>=40){CustomChar3(2,8);} if(x<=40){lcd_out(2,8," ");}
if(x>=45){CustomChar3(2,9);} if(x<=45){lcd_out(2,9," ");}
if(x>=50){CustomChar3(2,10);} if(x<=50) {lcd_out(2,10," ");}
if(x>=55){CustomChar3(2,11);} if(x<=55){lcd_out(2,11," ");}
if(x>=60){CustomChar3(2,12);} if(x<=60){lcd_out(2,12," ");}
if(x>=65){CustomChar3(2,13);} if(x<=65){lcd_out(2,13," ");}
if(x>=70){CustomChar3(2,14);} if(x<=70){lcd_out(2,14," ");}
if(x>=75){CustomChar3(2,15);} if(x<=75){lcd_out(2,15," ");}

//////////////////////////////////////////////////////////////////////////////////////////

حاولت ان اعمل هكذا
CustomChar3(2,A);}
A++

ولكن مانفع

اريد اذا زادت قيمة X
زاد معها CustomChar3
والعكس صحيح

رابط المشروع حتى تكون الصورة اوضح ؟!؟!
http://www.4shared.com/rar/RHwtomtR/fuel_2.html
يجتوي على كود المشروع ميكرو سي وبروتيوس


اريد ان اكمل المشروع بالكود السابق وضعه ما استطعت فكتبت نصفه فقط في الكود


التعديل الأخير تم بواسطة : TIME0 بتاريخ 26-07-2012 الساعة 09:31 AM
اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:97
قديم 26-07-2012, 03:59 PM المشاركة 2   
افتراضي


كود:
 
if(x>=10){CustomChar3(2,2);} if(x<=10) {lcd_out(2,2," ");} if(x>=15){CustomChar3(2,3);} if(x<=15){lcd_out(2,3," ");} if(x>=20){CustomChar3(2,4);} if(x<=20){lcd_out(2,4," ");} if(x>=25){CustomChar3(2,5);} if(x<=25){lcd_out(2,5," ");} if(x>=30){CustomChar3(2,6);} if(x<=30) {lcd_out(2,6," ");} if(x>=35){CustomChar3(2,7);} if(x<=35){lcd_out(2,7," ");} if(x>=40){CustomChar3(2,8);} if(x<=40){lcd_out(2,8," ");} if(x>=45){CustomChar3(2,9);} if(x<=45){lcd_out(2,9," ");} if(x>=50){CustomChar3(2,10);} if(x<=50) {lcd_out(2,10," ");} if(x>=55){CustomChar3(2,11);} if(x<=55){lcd_out(2,11," ");} if(x>=60){CustomChar3(2,12);} if(x<=60){lcd_out(2,12," ");} if(x>=65){CustomChar3(2,13);} if(x<=65){lcd_out(2,13," ");} if(x>=70){CustomChar3(2,14);} if(x<=70){lcd_out(2,14," ");} if(x>=75){CustomChar3(2,15);} if(x<=75){lcd_out(2,15," ");}
//////////////////////////////////////////////////////////////////////////////////////////

حاولت ان اعمل هكذا


ولكن مانفع

اريد اذا زادت قيمة X
زاد معها CustomChar3
والعكس صحيح

رابط المشروع حتى تكون الصورة اوضح ؟!؟!
http://www.4shared.com/rar/RHwtomtR/fuel_2.html
يجتوي على كود المشروع ميكرو سي وبروتيوس


اريد ان اكمل المشروع بالكود السابق وضعه ما استطعت فكتبت نصفه فقط في الكود



السلام عليكم ورحمة الله وبركاتة
بالنسبة لتلخيص الكود فهو ممكن


كود:
   if(x>=10){CustomChar3(2,2);} if(x<=10) {lcd_out(2,2," ");}
((هذا هو السطر الاول من الكود الخاص بك ))

لو دققنا قليلا فى الكود سوف نجد ان الرقم باللون الاحمر يزيد 5 فى كل مرة
والارقام باللون الازرق تزيد 1 فى كل مرة .
هذا يساعد على اختصار الكود .
سوف نقوم بحجز متغيرين اولهم سوف نجعل قيمتة 5 ونضعة كبديل للون الاحمر
والاخر قيمتة 1 ونضعة كبديل للون الازرق .
كمثال:
كود:
 char n=5:
char m=1:


فيكون الكود السابق بهذا الشكل

كود:
  
if(x>=10){CustomChar3(2,2);} if(x<=10) {lcd_out(2,2," ");}
 if(x>=10+n){CustomChar3(2,2+m);} if(x<=10) {lcd_out(2,2+m," ");}


اعتقد انة بهذا الشكل يمكنك تلخيص الكود


=============================
المهم هو ان الفكرة طالما انة لديك رقم يزيد فى كل خطوة بقيمة ثابتة
يمكنك وضع متغير بنفس القيمة الثابتة ووضعها داخل الكود .

وهذا السطر رغم انة سطر واحد الا انة يغنيك عن ال 14 سطر بل واكثر


قم بالتجربة وتابع الموضوع وسوف تجد اقتراحات اخرى من الاخوة افضل من اقتراحى باذن الله .


بالتوفيق باذن الله
وكل عام وانتم بخير جميعا
ورمضان كريم


التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 26-07-2012 الساعة 04:08 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:97
قديم 26-07-2012, 04:16 PM المشاركة 3   
افتراضي


فى الرد السابق تم الاختصار الى سطرين
ويمكن الاختصار الى سطر واحد فقط


بهذا الشكل :

كود:
 char n=5:
char m=1:

كود:
  if(x>=5+n){CustomChar3(2,1+m);} if(x<=10) {lcd_out(2,1+m," ");}

قمنا هنا بتعديل القيم من 10 الى القيمة 5 لان القيمة + المتغير n الذى يساوى 5
اصبحت 5+5=10.

والقيمة الاخرى تم تعديلها من عدد 2 الى عدد 1 مع اضافة قيمة المتغير m الذى يساوى 1 .
فاصبحت قيمتها 2 كما هى فى الكود .


TIME0
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
المشاركات: 277
نشاط [ TIME0 ]
قوة السمعة:0
قديم 26-07-2012, 07:37 PM المشاركة 4   
افتراضي


شكرا اخي الكريم بصراحة سعدت بمرورك الكريم والرد على مشاركتي

عملت كما قلت ولكن ماحصل المطلوب شاهد هنا رفعت الكود ميكرو سي وملف المحاكاه بروتيوس
اتمنى المشاهده مع تغيير في قيمة المقاومة
http://www.4shared.com/rar/sHX3e-5i/fuel.html

لو قلنا
x<5+n
و n=5
فكاننا قلنا له x<10
صح

يوجد حركة جميله هنا لا اعرف كيف عملها
شوف هذا الرابط

نفس ما اريد هنا ولكن الشيء الجميل انه يتدرج في ملئ المربع ولكن نحن نظهر المربع كامل مره واحده شاهد بعناية

ويوجد رابط رائع جدا حركة آخرى وهي عند التوقيت 0.6
لا اعرف كيف اعملها
نفس الفكره التدرج في الاظهار

اتمنى المشاركة من الجميع وشكرا لكم جميعا


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 666
نشاط [ funky112233 ]
قوة السمعة:92
قديم 26-07-2012, 11:38 PM المشاركة 5   
افتراضي


بسم الله الرحمن الرحيم
يا اخى اعذرنى والله نسيت خالص وانشغلت عنك انا اسف
انا فعلا لخصتلك الكود تماما وخلتية يعرض كل حاجة على دالة عرض واحدة بس
لكن المساحة مقلتش بالشكل المطلوب
والى عامل مشكلة المساحة دة
هو الامر بتاع التحويل
لانوا بياخد مساحة كبيرة جدا فوق ما تتخيل
وهو الى عامل المشكلة كلها اصلا
لو قدرت تحوت برقم ااقل مثلا int
هتلاقى توفير فى المساحة كبير جدا
وان شاء الله ارفعلك الكود بعد التلخيص ولكن التوفير فى المساحة مش كبير اوى زى ما قلتلك لازم تقلل فى التحويل دة
وان شاء الله اشوفلك حل يديك نفس النتايج مع تغير التحويل
واسف مرة تانية على اتاخير الطويل


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:98
قديم 26-07-2012, 11:47 PM المشاركة 6   
افتراضي


بسم الله الرحمن الرحيم
يا اخى اعذرنى والله نسيت خالص وانشغلت عنك انا اسف
انا فعلا لخصتلك الكود تماما وخلتية يعرض كل حاجة على دالة عرض واحدة بس
لكن المساحة مقلتش بالشكل المطلوب
والى عامل مشكلة المساحة دة
هو الامر بتاع التحويل
لانوا بياخد مساحة كبيرة جدا فوق ما تتخيل
وهو الى عامل المشكلة كلها اصلا
لو قدرت تحوت برقم ااقل مثلا int
هتلاقى توفير فى المساحة كبير جدا
وان شاء الله ارفعلك الكود بعد التلخيص ولكن التوفير فى المساحة مش كبير اوى زى ما قلتلك لازم تقلل فى التحويل دة
وان شاء الله اشوفلك حل يديك نفس النتايج مع تغير التحويل
واسف مرة تانية على اتاخير الطويل
انت عاوز تحول من ايه لايه يا محمد؟؟


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 666
نشاط [ funky112233 ]
قوة السمعة:92
قديم 27-07-2012, 10:00 AM المشاركة 7   
افتراضي


بسم الله الرحمن الرحيم
اهلا يا بشمهندس sheimy
ان شاء الله تكون بخير

التحويل الى فى الكود FloatToStr
لانوا بيعرض الارقام بنسبة مئوية
وفيها . زى 50.25
وهكذا
والتحويل دة بياخد مساحة كبيرة اوى اوى
وهو الى عامل معاه المشكلة

وجازاك الله خيرا على مشاركتك


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:98
قديم 27-07-2012, 11:47 AM المشاركة 8   
افتراضي


بسم الله الرحمن الرحيم
اهلا يا بشمهندس sheimy
ان شاء الله تكون بخير

التحويل الى فى الكود FloatToStr
لانوا بيعرض الارقام بنسبة مئوية
وفيها . زى 50.25
وهكذا
والتحويل دة بياخد مساحة كبيرة اوى اوى
وهو الى عامل معاه المشكلة

وجازاك الله خيرا على مشاركتك
كلامك مظبوط يا محمد
التحويل يستهلك مساحة كبيرة

ولكن دعنا نبدائها خطوة خطوة
فيكون التحويل هكذا
كود:
Lcd_Out(1,3,"temp= ");
t=(long)Adc_Read(0);
t=t*5000/1024;
x=t/1000;
Lcd_chr_Cp(x+48);
t=t%1000;
x=t/100;
Lcd_chr_Cp(x+48);
t=t%100;
x=t/10;
Lcd_chr_Cp(x+48);
x=t%10;
Lcd_chr_Cp('.');
Lcd_chr_Cp(x+48);
Lcd_chr_Cp(' ');
Lcd_chr_Cp('C');
وهذا مجرب من قبل اكثر من مرة وشغال تمام مع حساس حرارة LM35
ارجعتنى لاولى مشاركاتى فى القرية فقد كانت هذة الطريقة من اولى ما كتبته بالقرية وشاركت به
تقبل الله منا ومنكم الصيام والقيام

إضافة رد

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

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

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


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

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