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

   

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



ماهو الخطأ في هذا الكود


لكي يعمل الليد عند اللضغط على السويش

يوجد عند أخطاء في الكود
1- في داله IF علامه = تكتب هكذا == وليس =
2- انت مختبر اذا porta.f0==1 خلي 0=portb.f0 واذا لم يتم ضغط خلي 0=portb.f0 وهذا تعبير خاطئ للسويج مفروض تخبره اذا ضغطت على سويج خلي
portb.f0=1
اي دائما portb.f0=0
3- مع سويجات أضع فتره زمنيه مثلا (delay_ms(250 للتخلص من ذبذبات ناتجه من سويج

ملاحظه// الرجاء وضع الكود ضمن مشاركه وليست صوره لغرض وضع لون على مكان خطأ لكي انت تقوم بمحاوله تصحيحه
طبعا أختار الرد الوضع متطور وأختار # والصق الكود
لابأس أخي ا×طاء هي تعلمك البرمجه أستمر وأخوه سوف يدعموك بكل مايستطعيون
تحياتي

اعلانات

الصورة الرمزية قطر الندى 89
قطر الندى 89
:: مهندس متميز ::
تاريخ التسجيل: Aug 2013
الدولة: IRAQ
المشاركات: 332
نشاط [ قطر الندى 89 ]
قوة السمعة:
قديم 08-10-2014, 07:43 PM المشاركة 10   
افتراضي


يوجد عند أخطاء في الكود
1- في داله IF علامه = تكتب هكذا == وليس =
2- انت مختبر اذا porta.f0==1 خلي 0=portb.f0 واذا لم يتم ضغط خلي 0=portb.f0 وهذا تعبير خاطئ للسويج مفروض تخبره اذا ضغطت على سويج خلي
portb.f0=1
اي دائما portb.f0=0
3- مع سويجات أضع فتره زمنيه مثلا (delay_ms(250 للتخلص من ذبذبات ناتجه من سويج

ملاحظه// الرجاء وضع الكود ضمن مشاركه وليست صوره لغرض وضع لون على مكان خطأ لكي انت تقوم بمحاوله تصحيحه
طبعا أختار الرد الوضع متطور وأختار # والصق الكود
لابأس أخي ا×طاء هي تعلمك البرمجه أستمر وأخوه سوف يدعموك بكل مايستطعيون
تحياتي
شكراً استاذ حسن .هذا الكود

كود:
void main(){
TRISA=0B00011111;
TRISB=0B00000000;
a:
if(PORTA.f0=1){PORTB.f0=0}
if(PORTA.f0=0){PORTB.f0=1}
goto a;
}

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

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


شكراً استاذ حسن .هذا الكود

كود:
void main(){
TRISA=0B00011111;
TRISB=0B00000000;
a:
if(PORTA.f0=1){PORTB.f0=0}
if(PORTA.f0=0){PORTB.f0=1}
goto a;
}
تصحيح الكود
كود:
void main(){
TRISA.f0=1;// input
TRISB.f0=0;// output
portb.f0=0;
while(1)
      {
       if(PORTA.f0==0){
                       PORTB.f0=~PORTB.f0;
                        delay_ms(250);
                      }
      }

}
PORTB.f0=~PORTB.f0 يعني كلما تضغط على سويج يعكس حاله PORTB.f0 وعكس حاله بأستخدام أداه نفي ّ~
ملحوظه// لاتعرف البورت على انه مدخل ولاتستخدمه في البرنامج يعني مثلا انت
قلت TRISA=0B00011111 يعني أستخدمت اول اربعه بنات من porta مداخل ولا راح تستخدمهن لان مدخل اذا لم يوضع بقيمه محدده 1 او 0 سيكون مصدر للتشويش على البرنامج لذا عرف البن الذي تريده فقط

ايضا ملحوظه أخرى يفضل كتابه البرنامج كتالي
كود:
sbit led at RB0_bit;
sbit led_dir at TRISB0_bit;
sbit sw at RA0_bit;
sbit led at TRISA0_bit;
void main(){
sw=1;// input
led_dir=0;// output
led=0;//off led
while(1)
      {
       if(sw ==0){
                     led=~led;
                    delay_ms(250);
                }
      }

}
طبعا sbit اسم او اي شي تكتبه والي راح تستخدمه في البرنامج at رقم البن من البورت


حمودي الحلو
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2006
الدولة: العراق
المشاركات: 104
نشاط [ حمودي الحلو ]
قوة السمعة:
قديم 08-10-2014, 08:28 PM المشاركة 12   
افتراضي


استاذ حسن هادي الافضل الاختصار كون العضوة جديدة و ان التعليمة sbit جديدة عليها وتحتاج الى وقت للتعرف عليها اكتفي بالكود التالي
كود:
void main(){
TRISA.f0=1;// input
TRISB.f0=0;// output
portb.f0=0;
while(1)
      {
       if(PORTA.f0==0){
                       PORTB.f0=1;
                        delay_ms(250);
                      }
      }

}


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


ارجوا الاطلاع على هذا الكتاب لعله ينفعكم
http://www.qariya.info/vb/showthread.php?t=150568



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