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

   

zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 24-04-2012, 12:51 AM المشاركة 25   
افتراضي



شكرا أخي باسم على الرد وعلى الاسلوب اللائق في التعامل بارك الله فيك.
وبالمناسبة فإني الغيت عبارة من ردي السابق عليك ، لم يعد لها معنى فأصبحت مشاركتي كالتالي :



وبذلك أعتقد ان هذه المناقشة أصبحت خارج الموضوع وبناء عليه انسحب منه.
تحياتي لك وللاستاذ حيدر .
اخي العزيز imozar

اتمنى منك المتفاعل ونحن اخوة دوما

ولو كان موضوعي الموضوع للناقش سيسبب اي حساسية بينك وبين اي عضو
بلاش من المشروع كلة والمناقشة ...

اهم شئ اخوتنا وصداقتنا قبل كل شئ ..

فاتمنى ان لاتنسحب ومثلما قلت واعيد لو كانت سببا في انسحابك فانا اول المنسحبين من المشروع كله .

فالصداقة والمخوة ياراقل اهم عندي

اعلانات

الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 316
نشاط [ باسم ماجد ]
قوة السمعة:
قديم 24-04-2012, 12:45 PM المشاركة 26   
افتراضي


أخي العزيز zoro
خطوة خطوة :
هناك اكثر من دالة في المشروع
كل دالة مرتبطة بالاخرى
تقصد أمر و ليس دالة ؟ الدلة هي مجموعة من الأوامر يتم تعريفها في بداية البرنامج و قبل void main () iiiiiiiiiiiii

هو انا اريد ان اتاكد من القيمة الموجوده في البورت دي
لكن ليس في دالة المين
وانما في دالة اخرى تستدعي من المين
عذرا" ماذا تقصد تريد أن تتأكد ؟

وانما في دالة اخرى تستدعي من المين
نعم الدالة تستدعى من داخل الدالة الرئيسة void main() iiiiiiiiii
و التي تكون قد تم تعريفها مسبقاً في بداية البرنامج و الهدف منها عدم تكرار الأوامر لإختصار الكود

كمثال لو ضغط على الزر بورت بي 4 تعمل دالة وتسند قيمة للبورت دي 8
ولو رفعت الضغط على الزر تعمل دالة اخرى وتتاكد من القيمة التى على البورت دي
تقصد عند الضغط على B4 تكون قيمة البت 5v+=D4
و عندما تحرير الزر يتم تنفيذ أمر أخر
حسب ما فهمت منك سيكون الكود بكل بساطة كالأتي :
أنصحك بالتجربة على البك 16F84A :
[IMG][/IMG]

أخبرني أي البرامج تستخدم ؟
يفضل أستخدام :
1.MicroC PRO
و برنامج المحاكاة Proteus
جرب الكود و خبرني
تمنياتي لك بالتوفيق


التعديل الأخير تم بواسطة : باسم ماجد بتاريخ 24-04-2012 الساعة 12:53 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 316
نشاط [ باسم ماجد ]
قوة السمعة:
قديم 24-04-2012, 12:54 PM المشاركة 27   
افتراضي




Imozar
:: مهندس متميز ::
تاريخ التسجيل: Dec 2011
المشاركات: 315
نشاط [ Imozar ]
قوة السمعة:
قديم 24-04-2012, 01:36 PM المشاركة 28   
افتراضي


أخي لاتوجد اية حساسية
فقط كان عندي هاجس ان يحدث تعارض بين الدخول والخروج في نفس المنفذ "د" عند تنفيذ الدائرة فعليا.
لكن طالما الموضوع متعلق بفحص بعض اطراف المنفذ "د" كخرج فلقد زال الهاجس.
وصراحة هذه اول مرة انتبه الى امكانية فحص حالة خرج
ولا أعرف كيف سيتصرف المتحكم الكترونيا لحظة التنفيذ العملي على ارض الواقع ؟
وهل بإمكانه فعل ذلك ؟
تبقى مجرد تساؤلات.


الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 316
نشاط [ باسم ماجد ]
قوة السمعة:
قديم 24-04-2012, 03:16 PM المشاركة 29   
افتراضي


أخي لاتوجد اية حساسية
فقط كان عندي هاجس ان يحدث تعارض بين الدخول والخروج في نفس المنفذ "د" عند تنفيذ الدائرة فعليا.
لكن طالما الموضوع متعلق بفحص بعض اطراف المنفذ "د" كخرج فلقد زال الهاجس.
وصراحة هذه اول مرة انتبه الى امكانية فحص حالة خرج
ولا أعرف كيف سيتصرف المتحكم الكترونيا لحظة التنفيذ العملي على ارض الواقع ؟
وهل بإمكانه فعل ذلك ؟
تبقى مجرد تساؤلات.
سررت لعودتك أخي العزيز Imozar
تستطيع تحديد أي بت كدخل أو خرج في نفس البورت
أسرع طريق لإحتراف برمجة الـ PIC بإستخدام MikroC
تمنياتي لك بالتوفيق


Imozar
:: مهندس متميز ::
تاريخ التسجيل: Dec 2011
المشاركات: 315
نشاط [ Imozar ]
قوة السمعة:
قديم 24-04-2012, 05:14 PM المشاركة 30   
افتراضي


سررت لعودتك أخي العزيز Imozar
تستطيع تحديد أي بت كدخل أو خرج في نفس البورت
أسرع طريق لإحتراف برمجة الـ PIC بإستخدام MikroC
تمنياتي لك بالتوفيق
شكرا لك أخي باسم
لكن قل لي .. ليه تشير لي على ذلك الرابط ؟ هو انا غريب على المنتدى ؟
وبعدين مين قال العكس ؟
ثم قل لي كيف يمكن استخلص معلومة صغيرة من ذلك الكم الهائل من المعطيات ما شاء الله ..
هو انا عملت لك حاجة وحشة لا سمح الله ؟

أخي zorro آسف على خروجي عن موضوعك لكن ان شاء الله كل مافيه ينفع الجميع.


zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 24-04-2012, 08:22 PM المشاركة 31   
افتراضي


أخي العزيز zoro
خطوة خطوة :

تقصد أمر و ليس دالة ؟ الدلة هي مجموعة من الأوامر يتم تعريفها في بداية البرنامج و قبل void main () iiiiiiiiiiiii
اقصد دالة وهي قبل المين ..

عذرا" ماذا تقصد تريد أن تتأكد ؟
اريد ان اتاكد من القيمة الموجوده بالبورت دي هذه هي المشكلة الرئيسية
اتمنى ان تفهموني

انا جربت الكود الذي وضعته لى .. وهو شغال في الدالة الرئيسية

ركز شوية معي ....

في دالتين قبل المين ... الدالة الاولى تعمل عند الضغط على المفتاح بي4 فترسل القيمة 8 الى البورت دي ... هذه النقطة الاولى

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

مثال فحص البورت دي ووجد القيمة فية 8 يرسل القيمة 4 للبورت دي

هذه هي الموضوع كله ..




نعم الدالة تستدعى من داخل الدالة الرئيسة void main() iiiiiiiiii
و التي تكون قد تم تعريفها مسبقاً في بداية البرنامج و الهدف منها عدم تكرار الأوامر لإختصار الكود
هذه هي الجزئية مفهومة علما بانني اخي مستواي متوسط في اللغة المايكروسي
وليس بهذه الدرجة من المبتدئ


أخبرني أي البرامج تستخدم ؟
يفضل أستخدام :
1.MicroC PRO
و برنامج المحاكاة Proteus
جرب الكود و خبرني
1.MicroC PRO والبروتيس

المشكلة هنا فقط

==========================
ركز شوية معي ....

في دالتين قبل المين ... الدالة الاولى تعمل عند الضغط على المفتاح بي4 فترسل القيمة 8 الى البورت دي ... هذه النقطة الاولى

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

مثال فحص البورت دي ووجد القيمة فية 8 يرسل القيمة 4 للبورت دي

هذه هي الموضوع كله ..
==================================

علما بان الدالة الاولى تعمل جيده وفعلا تظهر القيمة على البورت دي وهي 8 اي 1000 لكن عندما اعمل الكود دا في بداية الدالة الثانية لايعمل

كود:
if (portd==8)
portd=4
else
portd=10;
تظهر القيمة 10 ومن المفترض تظهر القيمة 4 على البورت دي

جربت نفس الكود في المين اشتغل تمام التمام

لكن عبر الدالة لايعمل


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 24-04-2012, 09:43 PM المشاركة 32   
افتراضي


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



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