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

   

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 23-09-2014, 11:48 AM المشاركة 17   
افتراضي



السلام عليكم

كتبت هذا الكود لرمونت كنترول الكود يعمل على البروتيوس بدون مشاكل ولاكن فى الواقع لايعمل اذا كان اكثر من ثلاث سويشات ؟؟ لو اضفنا كود لسويش الرابع يتوقف عن العمل ؟؟ مالسبب ؟؟




[IMG][/IMG]

الكود


كود:
#define       is              ==
#define       preseed         0
#define       sw1             porta.b0
#define       sw2             porta.b1
#define       sw3             porta.b2
#define       sw4             porta.b3
#define       sw5             porta.b4
#define       sw6             porta.b5
#define       sw1_dir         trisa.b0
#define       sw2_dir         trisa.b1
#define       sw3_dir         trisa.b2
#define       sw4_dir         trisa.b3
#define       sw5_dir         trisa.b4
#define       sw6_dir         trisa.b5
#define       on                1
#define       off               0
#define       input             1
#define       output            0
/*******************************************/
char code_1[]={0,0,0,0,1,0,1,0,0,1};
char code_2[]={0,0,0,0,1,0,1,0,1,1};
char code_3[]={0,0,0,0,1,0,1,1,0,1};
char code_4[]={0,0,0,0,1,0,1,1,1,1};
char code_5[]={0,0,0,0,1,1,0,0,0,1};
char code_6[]={0,0,0,0,1,1,0,0,1,1};
char x=0;
/*****************************************/
void send_code(char my_code[])
{
 for(x=0;x<10;x++)
                {
                 if(my_code[x] is 0){pwm1_start();}
                 if(my_code[x] is 1){pwm1_stop() ;}
                 delay_ms(20);
                 }
/*****************************************/
}
void init()
{trisa.b7=input;
 trisa.b5=input;
 sw1=input;
 sw2=input;
 sw3=input;
 sw4=input;
 sw5=input;
 sw6=input;
 trisb=0;
 portb=0;
 ANSEL=0;
 OSCCON= 0b01000000;  
 cmcon=7;
}

/*****************************************/
void main()
{
         init();
         pwm1_init(38000);
         pwm1_set_duty(178);
         while(1)
                {
                 if(sw1 is preseed)
                 {delay_ms(10);
                 while(sw1 is preseed);
                 delay_ms(10);
                 send_code(code_1);
                 }
 else  if(sw2 is preseed)
                    {
                     delay_ms(10);
                     while(sw2 is preseed);
                     delay_ms(10);
                     send_code(code_2);
                    }

  else  if(sw3 is preseed)
                  {
                   delay_ms(10);
                   while(sw3 is preseed);
                   delay_ms(10);
                   send_code(code_3);

                  }
 else if(sw4 is preseed)
                   {
                    delay_ms(10);
                    while(sw4 is preseed);
                    delay_ms(10);
                    send_code(code_4);
}
else if(sw5 is preseed)
                   {
                    delay_ms(10);
                    while(sw5 is preseed);
                    delay_ms(10);
                    send_code(code_5);
                   }
else if(sw6 is preseed)
                   {
                     delay_ms(10);
                     while(sw6 is preseed);
                     delay_ms(10);
                     send_code(code_6);
                   }
  }
}

الملف

http://www.gulfup.com/?Lrm2Dr
السلام عليكم
أخي الصورة المرفقة مع الكود فيها السويتش 6 موصول مع الدخل RA5
هي مناسبة للكود .
لكن في ملفك المرفق :
http//www.gulfup.com/?Lrm2Dr
الوضع مختلف: الدخل RA5 شاغر وغير موصول باي شيء
تأكد أخي من الدائرة المنفذة ؟ ؟ هل هي التي في الصورة المرفقة أم التي في بروتوس ..

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-09-2014, 11:56 AM المشاركة 18   
افتراضي



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

شكرا لك مهندس حسن

جربت اخزنها فى الروم ولاكن البرنامج اعطانى ايرر لم يقبلها وثانيا انا عرفت السويشات على انها دخل ومربوطة على بورت a كتبتها فى الديفاينات


كود:
#define       is              ==
#define       preseed         0
#define       sw1             porta.b0
#define       sw2             porta.b1
#define       sw3             porta.b2
#define       sw4             porta.b3
#define       sw5             porta.b4
#define       sw6             porta.b5
#define       sw1_dir         trisa.b0
#define       sw2_dir         trisa.b1
#define       sw3_dir         trisa.b2
#define       sw4_dir         trisa.b3
#define       sw5_dir         trisa.b4
#define       sw6_dir         trisa.b5
#define       on                1
#define       off               0
#define       input             1
#define       output            0



كود:
}
void init()
{trisa.b7=input;
 trisa.b5=input;
 sw1=input;
 sw2=input;
 sw3=input;
 sw4=input;
 sw5=input;
 sw6=input;
 trisb=0;
 portb=0;
 ANSEL=0;
 OSCCON= 0b01000000;  
 cmcon=7;
}

الكود الذى كتبته هو من شروحات الاستاذ احمد سمير فى دورته وهو مجربه وكما قلت الكود فى البرنامج اى برنامج بروتيوس يعمل ولاكن فى الحقيقة وعلى ارض الواقع يعمل اذا كتبت كود لثلاث سويشات ولاكن لو كتبت كود لسويش الرابع المايكرو يتوقف عن العمل ؟؟ ولم اعرف السبب حتى الان ؟؟
السلام عليكم
أخي العزيز لايوجد تعريف للمداخل حيث كتبتsw1=input ومفروض تكتب sw1_ dir=input
وهكذا للبقيه
تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 23-09-2014 الساعة 04:03 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-09-2014, 04:10 PM المشاركة 19   
افتراضي



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

شكرا لك مهندس حسن

جربت اخزنها فى الروم ولاكن البرنامج اعطانى ايرر لم يقبلها وثانيا انا عرفت السويشات على انها دخل ومربوطة على بورت a كتبتها فى الديفاينات


كود:
#define       is              ==
#define       preseed         0
#define       sw1             porta.b0
#define       sw2             porta.b1
#define       sw3             porta.b2
#define       sw4             porta.b3
#define       sw5             porta.b4
#define       sw6             porta.b5
#define       sw1_dir         trisa.b0
#define       sw2_dir         trisa.b1
#define       sw3_dir         trisa.b2
#define       sw4_dir         trisa.b3
#define       sw5_dir         trisa.b4
#define       sw6_dir         trisa.b5
#define       on                1
#define       off               0
#define       input             1
#define       output            0



كود:
}
void init()
{trisa.b7=input;
 trisa.b5=input;
 sw1=input;
 sw2=input;
 sw3=input;
 sw4=input;
 sw5=input;
 sw6=input;
 trisb=0;
 portb=0;
 ANSEL=0;
 OSCCON= 0b01000000;  
 cmcon=7;
}

الكود الذى كتبته هو من شروحات الاستاذ احمد سمير فى دورته وهو مجربه وكما قلت الكود فى البرنامج اى برنامج بروتيوس يعمل ولاكن فى الحقيقة وعلى ارض الواقع يعمل اذا كتبت كود لثلاث سويشات ولاكن لو كتبت كود لسويش الرابع المايكرو يتوقف عن العمل ؟؟ ولم اعرف السبب حتى الان ؟؟
بالنسبه للكود حوله الى روم
كود:
const char code_1[]={0,0,0,0,1,0,1,0,0,1};
const char code_2[]={0,0,0,0,1,0,1,0,1,1};
const char code_3[]={0,0,0,0,1,0,1,1,0,1};
const char code_4[]={0,0,0,0,1,0,1,1,1,1};
const char code_5[]={0,0,0,0,1,1,0,0,0,1};
const char code_6[]={0,0,0,0,1,1,0,0,1,1};
الان في داله يجب ان يكون في داله الي ترسل الكود تأخذ المصفوفه من نوع ثابت
كود:
void send_code(char my_code[])
لازم تكتبها هكذا
كود:
void send_code(const char my_code[])


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 23-09-2014, 07:43 PM المشاركة 20   
افتراضي


السلام عليكم
أخي الصورة المرفقة مع الكود فيها السويتش 6 موصول مع الدخل RA5
هي مناسبة للكود .
لكن في ملفك المرفق :
http//www.gulfup.com/?Lrm2Dr
الوضع مختلف: الدخل RA5 شاغر وغير موصول باي شيء
تأكد أخي من الدائرة المنفذة ؟ ؟ هل هي التي في الصورة المرفقة أم التي في بروتوس ..

وعليكم السلام شكرا لك اخى العزيز استفدت كثيرا من مداخلاتك بارك الله فيك فى الحقية انا عدلت الدائرة عندى ويبدو لم احفضها قبل رفعها الدائرة هية كما فى الصورة فى البرنامج وفى الواقع

اكيد انت راجع الكود هل تهيئة المايكرو فيها شى ناقص لم اكتبها ؟؟


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 23-09-2014, 07:47 PM المشاركة 21   
adevil


السلام عليكم
أخي العزيز لايوجد تعريف للمداخل حيث كتبتsw1=input ومفروض تكتب sw1_ dir=input
وهكذا للبقيه
تحياتي
فعلا كلامك صحيح مهندس حسن لا اعرف كيف لم الاحضها ؟؟


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 23-09-2014, 07:53 PM المشاركة 22   
Thumbs up


بالنسبه للكود حوله الى روم
كود:
const char code_1[]={0,0,0,0,1,0,1,0,0,1};
const char code_2[]={0,0,0,0,1,0,1,0,1,1};
const char code_3[]={0,0,0,0,1,0,1,1,0,1};
const char code_4[]={0,0,0,0,1,0,1,1,1,1};
const char code_5[]={0,0,0,0,1,1,0,0,0,1};
const char code_6[]={0,0,0,0,1,1,0,0,1,1};
الان في داله يجب ان يكون في داله الي ترسل الكود تأخذ المصفوفه من نوع ثابت
كود:
void send_code(char my_code[])
لازم تكتبها هكذا
كود:
void send_code(const char my_code[])
شكرا لك تم التعديل بنجاح وباقى التجربة فى الغد وساعلمكم بالنتائج ان شاء الله


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 23-09-2014, 08:03 PM المشاركة 23   
Talking



دائرة الارسال



[IMG][/IMG]


دائرة الاستلام


[IMG][/IMG]


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-09-2014, 08:05 PM المشاركة 24   
افتراضي


شكرا لك تم التعديل بنجاح وباقى التجربة فى الغد وساعلمكم بالنتائج ان شاء الله
الله يسهل عليك وبالتوفيق



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