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

   

qaqa.hack
:: مهندس ::
تاريخ التسجيل: May 2012
الدولة: فلسطيني بكل فخر
المشاركات: 13
نشاط [ qaqa.hack ]
قوة السمعة:
قديم 16-05-2012, 10:25 AM المشاركة 17   
Thumbs up



رد على وجه السرعة

ملاحظة انا استخدمة if للتوضيح لكن الحل العملى بإستخدام case اذا كان الكود كما تريد سأرفعه مع case
كود:
  void main()
{
     TRISA.F0 = 1 ;  //PORT A0 INPUT (SENSOR A)
     TRISA.F1 = 1 ;  //PORT A1 INPUT (SENSOR B)
     TRISA.F2 = 1 ;  //PORT A2 INPUT (SENSOR C)
     TRISA.F3 = 0 ;  //PORT A3 OUTPUT (SOUND)
     TRISB = 0 ; // ALL PORT B IS OUTPUT  "FOR MOTERS CONTROL"
      PORTA = 0;
       //dd         PORTA.f3 = 0;
     PORTB = 0;

        loop:
          if (PORTA==0b00000111 )
            {PORTA.f3=1;
             PORTB=0b00000000 ;}
               else PORTA.F3=0;

                   //ÝÍÕ A.F3
          if (PORTA==0b00000100 ) {PORTB=0;}  // ÇÐÇ ßÇä æÍÏå ãÖÛæØ æÑÝÊ ÇáÈÞíÉ
          if (PORTA==0b00001111 ) PORTA.f3=1;  else PORTA.F3=0;    //ÝÍÕ A.F3

          if (PORTA==0b00000010 ) PORTB=0b00001010 ;// right alone
          if (PORTA==0b00001010 ) PORTB=0b00001010 ;// right with a3 led
          if (PORTA==0b00000110 ) PORTB=0b00001010 ;// right with  a2 swich

          if (PORTA==0b00000001 ) PORTB=0b00010010 ;// LEFT  alone
          if (PORTA==0b00001001 ) PORTB=0b00010010 ;// LEFT  with a3 led
          if (PORTA==0b00000101 ) PORTB=0b00010010 ;// LEFT with  a2 swich
          
          
          if (PORTA==0b00000011 ) PORTB=0b00000100 ; // back
          if (PORTA==0b00000000 ) PORTB=0b00000000 ;
        goto loop;
      }
     //     delay_ms(500);
//                   delay_ms(500);          goto loop;
دعواتك

اعلانات

bay199
:: مهندس ::
تاريخ التسجيل: Jan 2011
المشاركات: 21
نشاط [ bay199 ]
قوة السمعة:
قديم 16-05-2012, 03:12 PM المشاركة 18   
افتراضي


اخي اعتذر على التأخير الخارج عن ارادتي
وجزاكالله الف خير على الحل لكن الحالات كانت كالتالي :
- جميع السويتشات يعمل الصورت .
- في حال السويتشان الاماميان واحد تتجه المركبه الى الخلف .
- في حال السويتش البسار يعمل تتجه السياره الى اليمين مع تشغيل الامام .
- في حال السويتش اليمين يعمل تتجه السياره الى اليسار مع تشيل الامام .

هذه جميع الحالات , سؤال أخر لماذا لم تضع تنفيذ الشرط داخل لوب ؟؟ ام هو سوف يكرر حتى يختل الشرط ؟؟؟

جزاك الله الف خير أخي الكريم


رد على وجه السرعة

ملاحظة انا استخدمة if للتوضيح لكن الحل العملى بإستخدام case اذا كان الكود كما تريد سأرفعه مع case
كود:
  void main()
{
     TRISA.F0 = 1 ;  //PORT A0 INPUT (SENSOR A)
     TRISA.F1 = 1 ;  //PORT A1 INPUT (SENSOR B)
     TRISA.F2 = 1 ;  //PORT A2 INPUT (SENSOR C)
     TRISA.F3 = 0 ;  //PORT A3 OUTPUT (SOUND)
     TRISB = 0 ; // ALL PORT B IS OUTPUT  "FOR MOTERS CONTROL"
      PORTA = 0;
       //dd         PORTA.f3 = 0;
     PORTB = 0;

        loop:
          if (PORTA==0b00000111 )
            {PORTA.f3=1;
             PORTB=0b00000000 ;}
               else PORTA.F3=0;

                   //ÝÍÕ A.F3
          if (PORTA==0b00000100 ) {PORTB=0;}  // ÇÐÇ ßÇä æÍÏå ãÖÛæØ æÑÝÊ ÇáÈÞíÉ
          if (PORTA==0b00001111 ) PORTA.f3=1;  else PORTA.F3=0;    //ÝÍÕ A.F3

          if (PORTA==0b00000010 ) PORTB=0b00001010 ;// right alone
          if (PORTA==0b00001010 ) PORTB=0b00001010 ;// right with a3 led
          if (PORTA==0b00000110 ) PORTB=0b00001010 ;// right with  a2 swich

          if (PORTA==0b00000001 ) PORTB=0b00010010 ;// LEFT  alone
          if (PORTA==0b00001001 ) PORTB=0b00010010 ;// LEFT  with a3 led
          if (PORTA==0b00000101 ) PORTB=0b00010010 ;// LEFT with  a2 swich
          
          
          if (PORTA==0b00000011 ) PORTB=0b00000100 ; // back
          if (PORTA==0b00000000 ) PORTB=0b00000000 ;
        goto loop;
      }
     //     delay_ms(500);
//                   delay_ms(500);          goto loop;
دعواتك

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

qaqa.hack
:: مهندس ::
تاريخ التسجيل: May 2012
الدولة: فلسطيني بكل فخر
المشاركات: 13
نشاط [ qaqa.hack ]
قوة السمعة:
قديم 17-05-2012, 02:11 AM المشاركة 19   
افتراضي


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


qaqa.hack
:: مهندس ::
تاريخ التسجيل: May 2012
الدولة: فلسطيني بكل فخر
المشاركات: 13
نشاط [ qaqa.hack ]
قوة السمعة:
قديم 17-05-2012, 02:13 AM المشاركة 20   
افتراضي


بالنسبة للشرط هو داخل لووب

loop:



goto loop;


bay199
:: مهندس ::
تاريخ التسجيل: Jan 2011
المشاركات: 21
نشاط [ bay199 ]
قوة السمعة:
قديم 17-05-2012, 02:31 AM المشاركة 21   
افتراضي


انا اقصد بالنسبه لشرط تحريك الموتر يتكرر حتى ينتفي الشرط ؟؟!!


qaqa.hack
:: مهندس ::
تاريخ التسجيل: May 2012
الدولة: فلسطيني بكل فخر
المشاركات: 13
نشاط [ qaqa.hack ]
قوة السمعة:
قديم 17-05-2012, 09:31 AM المشاركة 22   
افتراضي


مش فاهم عليك

المهم جرب الكود واذا في خلل قلى في ايش بالتحديد واعدله ان شاء الله

دعواتك


qaqa.hack
:: مهندس ::
تاريخ التسجيل: May 2012
الدولة: فلسطيني بكل فخر
المشاركات: 13
نشاط [ qaqa.hack ]
قوة السمعة:
قديم 17-05-2012, 09:39 AM المشاركة 23   
Thumbs up


انا اقصد بالنسبه لشرط تحريك الموتر يتكرر حتى ينتفي الشرط ؟؟!!
اذا كان تعني while
فهذا يعتمد على حاجتك انت تقوم باعطاء حركة للموتور ثم زمن فاصل ثم حركة

واعتقد ان الاستخدام الفضل هو كهرباء بشكل دائم لا اعرف ماذا تريد او ما هو الافضل لان خبرتى بسيطة

انا الان خبرتى على قدر اضاءة واطفاء بعض اللدات وقريبا سأدخل في المواتير الخطوية بعد انهاء بعض الدروس



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