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

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

رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 21-03-2017, 07:57 AM المشاركة 1   
ha السلام عليكم المساعدة في هذا الكود Twitter FaceBook Google+



اخواني الكود فيه اخطاء اريد تعلم كيفية الخروج من الحلقة التكرارية اذا تم تحقق الشرط الاخير
ولا يعود الى الحلقة التكرارية الى بتحقق الشرط الاول اربع مرات وشكرا
كود:
void main()
{int X; cmcon=0x07;
trisb=0b10000011;trisa=0;
portb=0; porta=0;
aa:
if(portb.F1==0&&portb.F1==0&&portb.F8==1)
for(X=0;X4;x++) ;porta.F2=1;porta.F5=1;delay_ms(100);
loop:
if(portb.F0==0&&portb.F1==1&&portb.F8==0)
{porta.F2=1;porta.F3=1;delay_ms(1000);};porta.F2=0;porta.F3=0;
if(portb.F0==1&&portb.F1==0&&portb.F8==0)
{portb.F5=1;portb.F6=1;porta.F2=1;porta.F3=0;delay_ms(1000);};
if(portb.F0==1&&portb.F1==1&&portb.F8==0)  goto aa;
goto loop;
{

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-03-2017, 09:46 AM المشاركة 2   
sun


السلام عليكم و رحمة الله و بركاته

اخى حاولت تعديله لما تطلب , لكنك لم توضح كثيرا ,

كود:

 void main()
 {
 int x; 
 cmcon=0x07;
 trisb=0b10000011;
 trisa=0;
 portb=0;
 porta=0;

 aa:
     for (x=0; x<4; x++){
         while( !((portb.F1==0) && (portb.F1==0) && (portb.F8==1)) ) ;
         while( ((portb.F1==0) && (portb.F1==0) && (portb.F8==1)) ) ;
     }
     porta.F2=1;porta.F5=1;delay_ms(100);

 loop:
     if( (portb.F0==0) && (portb.F1==1) && (portb.F8==0) ){
         porta.F2=1;porta.F3=1;delay_ms(1000);
     }
     porta.F2=0;porta.F3=0;

     if( (portb.F0==1) && (portb.F1==0) && (portb.F8==0) ){
         portb.F5=1;portb.F6=1;porta.F2=1;porta.F3=0;delay_ms(1000);
     }

     if( (portb.F0==1) && (portb.F1==1) && (portb.F8==0) )  
         goto aa;

     goto loop;
{

و ما توفيقى الا بالله

اللهم حياة ترضيك و ميتة تضحكك



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

رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 21-03-2017, 10:15 AM المشاركة 3   
افتراضي


الله يوفقك استاذ مشتاق الله لخير ما يحب ويرضى

وشكرا على المساعدة


رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 21-03-2017, 10:27 AM المشاركة 4   
افتراضي


استاذ مشتاق الله الكود يعطيني اخطاء انا استخدمmikroC PRO for PIC


رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 21-03-2017, 11:49 AM المشاركة 5   
افتراضي توضيح عمل الكود


استاذ مشتاق الله بداية الكود هناك جملة شرطية يجب ان تتحقق اربع مرات حسب جملة foorبعدها
يدخل الى الجمل الشرطية الثلاثة داخل loop وينفذ اوامر الشرطيين الاول والثاني ويبقى داخل حلقة
loopلكن اذا تحقق الشرط الثالث يخرج من loop الى aa ولا يدخل الى الحلقة التكرارية الى بتنفيذ
الشرط الاول اربع مرات كما في بداية الكود وهكذا يستمر عمل الكود
ارجو ان اكون وضحت الحضرتك الفكرة

[
كود:
void main()

{int X; cmcon=0x07;

trisb=0b10000011;trisa=0;

portb=0; porta=0;

aa:

if(portb.F1==0;&&portb.F1==0;&&portb.F8==1;)

for(X=0;X4;x++) ;porta.F5=1;delay_ms(100);


loop:

if(portb.F0==0;&&portb.F1==1;&&portb.F8==0;)

{porta.F2=1;porta.F3=1;delay_ms(1000);;porta.F2=0;porta.F3=0;


if(portb.F0==1;&&portb.F1==0;&&portb.F8==0;)

{portb.F5=1;portb.F6=1;porta.F2=1;porta.F3=0;delay_ms(1000);};


if(portb.F0==1;&&portb.F1==1;&&portb.F8==0;)  goto aa;


goto loop;

}


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-03-2017, 12:11 PM المشاركة 6   
sun


السلام عليكم و رحمة الله و بركاته

اليك الكود اخى بلا اخطاء لغوية , و انصحك بمحاولة اتقان اللغة و الصبر بواسطة كتب اللغة .

كود:
void main()
{
 int x;
cmcon=0x07;
trisb=0b10000011;
trisa=0;
portb=0;
porta=0;

aa:
for (x=0; x<4; x++){
while( !((portb.f1==0) && (portb.F1==0) && (portb.F7==1)) ) ;
while( ((portb.F1==0) && (portb.F1==0) && (portb.F7==1)) ) ;
}
porta.F2=1;porta.F5=1;delay_ms(100);
loop:
if( (portb.F0==0) && (portb.F1==1) && (portb.F7==0) )
{porta.F2=1;porta.F3=1;delay_ms(1000);};porta.F2=0;porta.F3=0;

if( (portb.F0==1) && (portb.F1==0) && (portb.F7==0) )
{portb.F5=1;portb.F6=1;porta.F2=1;porta.F3=0;delay_ms(1000);};

if( (portb.F0==1) && (portb.F1==1) && (portb.F7==0) )  goto aa;

goto loop;
}
و ما توفيقى الا بالله

اللهم حياة ترضيك و ميتة تضحكك



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

رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 21-03-2017, 04:18 PM المشاركة 7   
افتراضي


السلام عليكم

لله الحمد الكود شغال بارك الله فيك استاذ مشتاق الله وحفظك من كل مكروه وزاد في علمك

وشكرا لحضرتك على ما تقدمه من مساعدة لي وللاخوة


وعندي كم سؤال الحضرتك بخصوص هذا الكود

1- ما فائدة هذه العلامة في الكود ام انها صقطت سهوا ! هي في يداية حلقة while الاولى


رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 21-03-2017, 04:24 PM المشاركة 8   
افتراضي


السؤال الثاني وأرجو ان تتحملني

حضرتك كررت هذا الحلقة مع انها نفس التعليمة لماذا

كود:
while( !((portb.f1==0) && (portb.F1==0) && (portb.F7==1)) ) ;
while( ((portb.F1==0) && (portb.F1==0) && (portb.F7==1)) ) ;

إضافة رد

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

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

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


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

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