|
أخي العزيز 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 على البورت دي
جربت نفس الكود في المين اشتغل تمام التمام
لكن عبر الدالة لايعمل