السلام عليكم و رحمة الله و بركاته
اولا اود ان اتقدم بخالص شكري و امتناني للمهندس محمود و المهندس حسن هادي و كذلك المهندس ccfl .
المشكل عندي هذه المرة أنني وضعت الكود التالي :
كود:
for(;;) {
Lcd_out(1,1," REF =");
if(PORTC.B0==1){x=x+1; delay_ms(500);}
if(PORTC.B1==1){x=x-1; delay_ms(500);}
if(PORTC.B2==1){break;}
floattostr(x,str); Lcd_out(2,8,str);
delay_ms(100);
}
لكن عندما أقوم بزيادة الرقم بالضغط فوق 10 تظهر 10.9999 و أنا أريد 11 بالضبط ، و ايظا عندما انقص القيمة بعد 10 تعطي 90 بدل 9 مما يفرض علي مسح الـLCD لكل مرة مما يعني ظهور و اختفاء متكرر للقيمة .
هل من حل ؟
و مثلا حين اضيف في البرنامج حلقة متكرر مع امكانية الخروج منها في حالة تحقق شرط معين يعطيني demo limit
هل من حل ؟
و شكرا جزيلا
|
سلام عليكم
بالنسبه الى float هو مايكروسي يعطيك مثلا 10.99999 ولايعطيك 11 وحقيقه لاأعرف سبب ذلك
ولكن يمكنك تحديد الرقم بسهوله عن طريق مصفوفه
للتوضيح شاهد هذا الرابط وركز على كيفيه تحديد القيم الى 3 او 4 او ....
http://eeecb.com/vb/showthread.php?t=842
ايضا
http://eeecb.com/vb/showthread.php?t=841
وهذا ملف أيضا لاحظ كيف أعرضت الرقم هو يحتوي على الارقام عشريه
http://arabsh.com/files/0c36474e67f0...older-rar.html
************************************************** ***
اما بالنسبه لظهور مشكله demo limit
سببه هو أن برنامج لديك غير مسجل لذلك يسمحلك بكتابه برنامج لغايه 2 كيلوبايت
حمل برنامج أدناه ألغي قديم ومسحه بشكل نهائي ونصب برنامج مرفق وبعد ذلك يوجد ملف كراك أنسخه وضعه في ملفات البرنامج
http://www.mediafire.com/download/zc...uild.6.0.0.rar