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

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

الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 30-07-2011, 01:14 AM المشاركة 1   
ha problem with do while Twitter FaceBook Google+



السلام عليكم ايها الاحبة في الله

عندي مشكلة مع do while وهي وقد جربت جميع الحلول الممكنة التي اعرفها ولاكن دون جدوى فاردت ان اطرح مشكلتي هنا علني اجد ضالتي...طيب الفكرة هي كالاتي:
int x=0,m=0,k=0;
void one(){
for(m=0;m<=100;m++){
delay_ms(1);

if(portb.f7==1)break;}
}
void main(){
trisa=0xff;
trisb=0;
portb=0;
while(1){

m1: if(porta.f0==0)m2:
do{
{ portb.f0=1;one();portb.f0=0;one(); }
if(porta.f2==0){portb.f7=1;}
if(portb.f7){x++;delay_ms(1);}
if(x>5000){portb.f7=0;x=0; }
if(porta.f3==0){portb.f7=1;}
if(porta.f1==0){portb.f7=0;}

}
while(porta.f1=1);
if(porta.f1==0)
{m++;delay_ms(1);if(m>5000&&porta.f3==0)goto m1; m=0; }
if(portb.f1==0){ k++;delay_ms(1);if(k>5000&&porta.f3==1)goto m2;}



}


}

لكي نفهم الكود لابد من شرح وبكل بساطة الشرح كلاتي

انا عندي اربعة مفاتيح سويتش على البورتA و2ليد على البورتB واحد على RB0 واليد الاخر على RB7 اما في مايخص المفاتيح المفتاح الاول وهو RA0 وهو المسول على تشغيل البيك يعني هو الSTART عند الضغط عليه اليد الموجود على بورتRB0 يعمل فلاشر مستمر في هذه الاثناء عند الضغط على RA2 اوRA3 يشغل اليد الموجود على بورت RB7 لمدة 5 ثواني ثم ينطفئ مع مراعات ان اليد الموجود علىRB0 يبقى على حاله يشتعل ثم ينطفئ باستمرار بقي مفتاح واحد وهو RA1 . وهو مفتاح الOFF الذي ينهي عمل اليد على البورت RB0 وRB7 وينتضر حتي يتم الضغط على RA0 ليكرر العملية من جديد .المطلوب وبالتحديد هوعندما اصل البيك بالكهرباء ينتضر لايفعل اي شيئ اي ان المفاتيح الاخرى لاتستجيب الا ادا تم الضغط على الRA0 ليبدا اليد الذي هو على RB0 بالوميض المستمر معلنا على بداية العملية في هذه الاثناء عند الضغط على الRA2 اوRA3 يعمل اليد الذي هو علىRB7 لمدة 5 ثواني ثم ينطفئ لوحده ويبقى اليد الاحر يومض وتتكرر نفس العملية حتى يتم الضغط على الRA1 و هو عبارة على مفتاحOFF اذا تم الضغط عليه في اي لحظة PORTB .F0=0...PORTB.F7=0 في هذه الاثناءاذا تم الضغط على RA1 وتم اطفاء جميع الليدات التي هي على بورتRB0 وRB7 يبدء البيك بالعد لمدة 30 ثانية طالما PORTA.F3==1 اذا انتهت هده المدة يذهب البيك ليكرر العملية من البداية يعمل فلاشر .ويراقب هل تم الضغط على المفاتيح ليطبق ما سلف ذكره اما اذا تم الضغط على الRA1 بطبيعة الحال هنا يبدا العد لل 30 ثانية في هذا الوقت وقبل انقضائه ادا تم الضغط على RA3 اي PORTA.F3==0 ينتقل البيك الى بداية البرنامج من الاول وينتضر الضغط على الRA0 ليكرر العملية من جديد.
ارجو المساعدة من الاخوة الافاضل وشكرا جزيلا.

اعلانات

الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 30-07-2011, 10:53 PM المشاركة 2   
angry


اين انتم يااهل القرية هل من مساعدة

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

الصورة الرمزية islem
islem
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: algeria
المشاركات: 81
نشاط [ islem ]
قوة السمعة:0
قديم 30-07-2011, 10:59 PM المشاركة 3   
x2


اين انتم يااهل الخير هل من مجيب

إضافة رد

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

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

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


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

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