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

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 22-04-2015, 01:26 PM المشاركة 49   
افتراضي



السلام عليكم ورحمة الله وبركاته
شلونك استاذ حسن انشاء الله تكون بخير

بالنسبة لهذا الكود

كود:
void Lcd_Out20(char row, char col, const char *txt) {

   switch (row)
   {
      case 0: Lcd0_Command(128 +  0 + col ); break;
      case 1: Lcd0_Command(128 + 64 + col ); break;
      case 2: Lcd0_Command(128 + facter + col ); break;
      case 3: Lcd0_Command(128 + 64+facter + col ); break;
      default: return;
   }
   Lcd0_CstrOut(txt);
 }
حسب ماهو معروف ان جملة switch تقارن بين المتغيير الذي بداخلها مع الحالات (case) فمتى ما تحقق الشرط نفذ الامر المسنود له ولكن هنا وفي هذا الكود المتغير row يبقى ثابت حسب قيمته الافتراضية فكيف ينفذ الحالات الاربعة دون ان تزداد قيمته ؟؟؟؟؟ فعندما يكون بواحد ينفذ الحلة الاولى وعندما يكون 2 ينفذ الحالة الثانية وهكذا ....
السؤال الثاني : ماهو دور المتغير col داخل كل جملة ؟؟؟؟
السؤال الثالث : لماذا txt موجودة فقط ;(Lcd0_CstrOut(txt اين الــ txt2 و الــ txt3
السلام عليكم
لا اخي قيمه row لن تبقى ثابته انظر لكود ادناه تلاحظ قيم row تتغير حسب العمود الذي تريد اظهار رساله
وكذلك الحال ل col ليست ثابته فهو يحدد رقم صف في الشاشه
مثلا كنت تكتب (lcd_out (1,5,txt هنا row=1 , col=5
وبالنسبه txt1 , txt2 , txt3 فأنا خزنها في txt

طبعا اخي داله void Lcd_Out20 تحتاج مني رقم عمود ورقم صف ورساله الي تريد أظهارها

كود:
 Lcd_Out20(0,0,txt1);
 Lcd_Out20(1,0,txt2);
 Lcd_Out20(2,0,txt3);
 Lcd_Out20(3,0,txt4);

اعلانات

احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 324
نشاط [ احمد شهيد جواد ]
قوة السمعة:0
قديم 22-04-2015, 02:24 PM المشاركة 50   
افتراضي


السلام عليكم
لا اخي قيمه row لن تبقى ثابته انظر لكود ادناه تلاحظ قيم row تتغير حسب العمود الذي تريد اظهار رساله
وكذلك الحال ل col ليست ثابته فهو يحدد رقم صف في الشاشه
مثلا كنت تكتب (lcd_out (1,5,txt هنا row=1 , col=5
وبالنسبه txt1 , txt2 , txt3 فأنا خزنها في txt

طبعا اخي داله void Lcd_Out20 تحتاج مني رقم عمود ورقم صف ورساله الي تريد أظهارها

كود:
 Lcd_Out20(0,0,txt1);
 Lcd_Out20(1,0,txt2);
 Lcd_Out20(2,0,txt3);
 Lcd_Out20(3,0,txt4);

كيف يزداد المتغير row ؟؟؟؟ لم افهم هذه الجزئية
كذلك المتغير col كيف يزداد ؟؟؟؟
هل تقصد بهذا الامرد يزدادان
كود:
128 +  0 + col
ارجو توضيح هذا الامر وجزاكم الله خيراً

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 22-04-2015, 05:56 PM المشاركة 51   
افتراضي



كيف يزداد المتغير row ؟؟؟؟ لم افهم هذه الجزئية
كذلك المتغير col كيف يزداد ؟؟؟؟
هل تقصد بهذا الامرد يزدادان
كود:
128 +  0 + col
ارجو توضيح هذا الامر وجزاكم الله خيراً
السلام عليكم

لا أخي ليست هكذا يتم زياده
شوف أخي اولا تم أنشاء داله سميناها
void Lcd_Out20(char row, char col, const char *txt)
واعطينا لهذه داله ثلاث متغيرات row تخص الاعمده و col تخص الصفوف و *txt تخص الرسائل لكن من نوع const

ارجو ان تتطلع على أستخدام دوال في مايكروسي
سحاول البحث عن هذا الموضوع ليساعدك في الفهم لان أنشاء دوال مهم جدا في البرمجه

الان أخي من اريد اظهار نص معين انت في حاله طبيعيه ماذا تفعل مفروض تضع رقم الصف وعمود وتضع رساله وبعدها مفروض تظهر على الشاشه

الان داله void Lcd_Out20 وظيفتها هي وضع مؤشر في مكان صحيح ومن ثم اظهار الرساله

كيف تستخدم الامر بسيط تكتب مثلا
("Lcd_Out20(1,5,"IRAQ
الان لما انت تكتب هكذا معناها انت وضعت "row=1 , col=5 , txt="IRAQ

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً احمد شهيد جواد ( شكر العضو على هذه المشاركة )
اعجاب احمد شهيد جواد ( أعجبته المشاركة )

احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 324
نشاط [ احمد شهيد جواد ]
قوة السمعة:0
قديم 22-04-2015, 09:00 PM المشاركة 52   
افتراضي


السلام عليكم

كيف تستخدم الامر بسيط تكتب مثلا
("Lcd_Out20(1,5,"IRAQ
الان لما انت تكتب هكذا معناها انت وضعت "row=1 , col=5 , txt="IRAQ
اخي حسن هذا الامر واضح ولكن كيف تتم زيادة المتغيرين ؟؟؟؟ هذا مالم اعرفه


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 23-04-2015, 02:11 AM المشاركة 53   
افتراضي


اخي حسن هذا الامر واضح ولكن كيف تتم زيادة المتغيرين ؟؟؟؟ هذا مالم اعرفه
اخي هو لايتم زياده متغيرات وانما انت تعطيها قيم لكي تعمل

اساسا انت من تكتب داله Lcd_Out20 هو أساسا راح يكلك داله تحتاج الى قيم

على سبيل مثال لما قول له
كود:
 Lcd_Out20(1,0,txt2);
ماذا يحدث راح يستدعي داله Lcd_Out20 انا هنا اعطيت قيمه عمود=1 وصف =0
ل txt أعطيتها txt1

اذن بداله راح يتحقق هذا الشرط
كود:
case 1: Lcd0_Command(128 + 64 + col ); break;
اي (Lcd0_Command(192 بتالي مؤشر سوف ينتقل الى 192
يعني الشاشه عباره عن ليدات صغيره (( ماتركس)) او بكسلات ولما اقول له تحرك الى 192 يعني راح يتحرك عند نقطه 192 بشاشه
عندها ثبت مؤشر ماذا أفعل بعدها ابدء بعرض رساله
وبتالي راح تعرض في مكان الي انا اريده

انت فقط أختار العمود والصف ورساله وداله سوف تحرك مؤشر وفق النقطه الي انت حددتها عن طريق row , col


احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 324
نشاط [ احمد شهيد جواد ]
قوة السمعة:0
قديم 09-05-2015, 01:15 PM المشاركة 54   
افتراضي


السلام عليكم ورحمة الله وبركاته
استاذ حسن شلون اطبع واعرض ك string في ىالمكتبة الجديد الخاصة بالشاشة 20*4 ؟؟؟؟ انا كتبت هكذا ولكن يظهر خطأ عن عمل بيلد



الكود

كود:
 Lcd_Out20(0,0,"TIMER=");
                         delay_ms(250); inc++;
                         xx=inc*1000;
                         inttostr(xx,ma);
                         Lcd_Out20(ma);


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 11-05-2015, 06:02 PM المشاركة 55   
افتراضي


السلام عليكم ورحمة الله وبركاته
استاذ حسن شلون اطبع واعرض ك string في ىالمكتبة الجديد الخاصة بالشاشة 20*4 ؟؟؟؟ انا كتبت هكذا ولكن يظهر خطأ عن عمل بيلد



الكود

كود:
 Lcd_Out20(0,0,"TIMER=");
                         delay_ms(250); inc++;
                         xx=inc*1000;
                         inttostr(xx,ma);
                         Lcd_Out20(ma);
السلام عليكم
أخي العزيز هو بالتأكيد راح تطلع رساله خطأ لان داله
Lcd_Out20 تحتاج منك ثلاث متغيرات وهي رقم عمود وصف ورساله انت فقط أعطيته رساله بتأكيد راح يكلك كومبايلر انك لم تعطي داله بيانات الكامله

تحياتي


احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 324
نشاط [ احمد شهيد جواد ]
قوة السمعة:0
قديم 11-05-2015, 07:30 PM المشاركة 56   
افتراضي


السلام عليكم
أخي العزيز هو بالتأكيد راح تطلع رساله خطأ لان داله
Lcd_Out20 تحتاج منك ثلاث متغيرات وهي رقم عمود وصف ورساله انت فقط أعطيته رساله بتأكيد راح يكلك كومبايلر انك لم تعطي داله بيانات الكامله

تحياتي

السلام عليكم

استاذ حسن حتى بعد اضافة رقم الصف والعمود والرسالة لايزال يظهر الخطأ
((طبعاً هذا الكود ينقصه امر المسح ))


إضافة رد

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

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

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


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

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