لماذا كتبنا فى تعريف المنفذ a
TRISA=0B00011111; ولم نكتب بهذا الشكل TRISA=1;
|
كما ذكر أخي حيدر .. لا يوجد فرق . فما يهمنا هو أول بت فقط بأن يكون واحد أما الباقي فلن تفرق معنا إن كانت قيمتهم واحد أو صفر فليس لهم استخدام في المشروع . . .
===============================================
|
وكيف لى ان اجعل المتحكم يتحقق من شرطين وليس شرط واحد او مجموعه شروط
|
يوجد عدة حلول .. سأذكر الآن الحل الذي يعتبر قريب جدا مما ذكرناه ..
الآن ومن فهنا لجملة IF نعلم أنه إذا تحقق الشرط سيفذ البك ما بداخل القوسين .
أليس كذلك . . ولكن ماذا يحدث لو كتبت داخل القوسين جملة IF أخرى لها قوسين خاصين بها هي أيضا .. كما بالشكل التالي .
كود:
if( الشرط الأول ) {
if ( الشرط الثاني )
{ هذه الأوامر ستنفذ في حال تحقق الشرطين السابقين }
}
سيختبر البك الشرط الأول وفي حالة تحققه ينفذ الأوامر التي بين القوسين والتي أول أمر فيها هو اختبار لشرط ثاني فإذا تحقق هذا الشرط أيضا سينفذ الأوامر التي بين القوسين الخاصة بجملة if الثانية ..
وبنفس الطريقة لو أردت إختبار ثلاثة شروط .
كود:
if( الشرط الأول ) {
if( الشرط الثاني) {
if ( الشرط الثالث)
{ هذه الأوامر ستنفذ في حال تحقق الثلاث شروط}
}
}
هناك طريقة أخرى أفضل من هذه سنذكرها بالتفصيل إن شاء الله في التمارين والتي تعتبر درس جديد مستقل ..
الكلام السابق كله في حالة أنني أريد تنفيذ مجموعة من الأوامر ولكن في حالة تحقق شروط معينة وليس شرط واحد..
أما إذا أردت أن أنفذ أمر معين في حالة تحقق شرط معين وأنفذ أمر آخر في حالة تحقق شرط آخر وأنفذ أمر ثالث في حالة تحقق أمر ثالث .. وهكذا فكل ما أفعله هو أن أستخدم عدد معين من جمل if كما يلي :
كود:
if( الشرط الأول )
{ نفذ هذه الأوامر في حالة تحقق الشرط الأول }
if( الشرط الثاني)
{ نفذ هذه الأوامر في حالة تحقق الشرط الثاني}
if( الشرط الثالث)
{ نفذ هذه الأوامر في حالة تحقق الشرط الثالث}
أرجو أن تكونوا فهمتم ما أقصد ...
===============================================
|
هل يمكن ان اجعل المتحكم ينفذ امر معبن بعدد معين والانتقال الى امر اخر وتنفيذه بنفس العدد وهكذا بمتغير واحد
|
إذا كان عندي أمرين مختلفين وأردت أن أكرر تنفيذ الأمرين حيث ينفذ البك الأمر الأول ثم الثاني ثم يعيد هذه العملية عدد معين من المرات فإني أكتبهم داخل جملة for واحدة كما بالشكل التالي .
كود:
for(x=0;x<9;x++)
{
الأمر الأول
الأمر الثاني
}
في المثال السابق سينفد البك الأمر الأول ثم الأمر الثاني ويعيد تنفيذهم بهذا الترتيب 9 مرات .
ولكن إذا أردت أن ينفذ البك أمر معين عدد معين من المرات ثم ينتقل إلى أمر آخر وينفذه أيضا عدة مرات فيمكنني فعل ذلك كما يلي
كود:
for(x=0;x<15;x++)
{
الأمر الأول
}
for(x=0;x<15;x++)
{
الأمر الثاني
}
هنا سينفذ البك الأمر الأول 15 مرة ثم ينتقل للأمر الثاني وينفذه 15 مرة أيضا.
وكما يمكنني أن أجعل البك ينفذ الأمر الأول عدد معين وينفذ الأمر الثاني عدد آخر كما يلي .
كود:
for(x=0;x<5;x++)
{
الأمر الأول
}
for(x=0;x<10;x++)
{
الأمر الثاني
}
هنا سينفذ البك الأمر الأول خمس مرات ثم ينتقل للأمر الثاني وينفذه 10 مرات .
وبهذه الطريقة يمكنني أن أجعل البك ينفذ أي أمر بعدد معين من المرات .
بنفس المتغير ؟؟ نعم بنفس المتغير .. كما يحق لي أن أستخدم متغير آخر كما أريد وعلى حسب الحاجة .
وسنضرب الكثير من الأمثلة عن جميع ما سبق إن شاء الله في الدرس القادم حيث أن الدرس القادم يعتبر تمارين على الدرس السابق ولكن بأفكار كثيرة .
===============================================
وفقك الله أخي ahmad72 وأشكرك على هذه الأسئلة الرائعة جدا .
وشكرا لك أخي حيدر علاج حسن على إجاباتك الموفقة .
===============================================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع
والسلام عليكم ورحمة الله وبركاته