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

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

الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:0
قديم 12-06-2011, 01:44 PM المشاركة 1   
افتراضي mikroc و برمجة البيك Twitter FaceBook Google+



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

الزر الاول:
من (1 أو b+1) ثم (2 أو b+2) ثم (3 أو b+3) .....الى اخر عدد لحظ الضغط على الزر الثانى =a

الزر الثانى:
من (255 أو a-1) ثم (254 أو a-2) ثم (253 أو a-3) .......الى اخر عدد لحظة الزر الاول=b

عند تنفيذ على برنامج المحاكات البرنامج يعمل فقط الا عند استعمال delay_ms(250) لكن اذا اخترت نصف ثانيه او ثانيه لا يعمل فهل من حل لهذه المشكله


void main()
{ trisb=0;trisa=1;
porta=1;
portb=0;
loop3:
if (porta.f0==0)
{while( porta.f0==0 )
{}
loop1:
portb++;
delay_ms(250);
while (porta.f1==0 )
{ while(porta.f1==0 )
{}
goto loop2;
}
goto loop1;
}
if (porta.f1==0)
{ while( porta.f1==0)
{}
loop2:
delay_ms(250);
portb--;
while (porta.f0==0 )
{ while (porta.f0==0 )
{}
goto loop1;
}
goto loop2;
}
goto loop3;
}

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 12-06-2011, 08:41 PM المشاركة 2   
افتراضي


ما هو المتحكم الذي تستخدمه ؟؟

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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 12-06-2011, 09:01 PM المشاركة 3   
افتراضي


عموما لديك اخطاء في الكود ....
هذا الكود باستخدام المتحكم PIC16f84a و من كان على شاكلته ....

كود:
void main() { trisb=0;trisa=0xFF;portb=0; loop: if (porta.f0==0) {while( porta.f0==0 ) {} while(porta.f1==1){ portb++; delay_ms(500);}} if(porta.f1==0){ while( porta.f1==0) {} while(porta.f0==1){ delay_ms(500); portb--;}} goto loop; }


م عيد مفتاح
:: مهندس ::
تاريخ التسجيل: Nov 2010
المشاركات: 21
نشاط [ م عيد مفتاح ]
قوة السمعة:0
قديم 12-06-2011, 09:43 PM المشاركة 4   
افتراضي


جزاكم الله خيرا أخ حيدر على الرد لكن ينصح بعدم استخدام goto


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 12-06-2011, 10:38 PM المشاركة 5   
افتراضي


حياك الله أخي .
ينصح بعدم الأكثار منها و تداخلها لكي يفهم الكود من الآخرين ليس الا .هذا على حد علمي .
أهلا بك مرة أخرى


الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:0
قديم 13-06-2011, 10:36 AM المشاركة 6   
افتراضي


عموما لديك اخطاء في الكود ....
هذا الكود باستخدام المتحكم PIC16f84a و من كان على شاكلته ....


[/LEFT][/code]
مشكور اخى

الكود ليس فيه اخطاء اضن انك لم تفهم سؤالى

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


التعديل الأخير تم بواسطة : abdeslem1982 بتاريخ 13-06-2011 الساعة 10:40 AM

the lion
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: egypt
المشاركات: 117
نشاط [ the lion ]
قوة السمعة:0
قديم 13-06-2011, 12:20 PM المشاركة 7   
افتراضي


اتمني ان يكون هذا الكود هو ما تريد او علي الاقل مساعد لك

http://www.mediafire.com/?3v3cwh89qwqfa1v
يمكنكت تطبيقه علي المتحكم 84 وذلك بازاله الامر
cmcon=7;
موفق ان شاء الله اخي الحبيب


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 13-06-2011, 04:35 PM المشاركة 8   
افتراضي


مشكور اخى

الكود ليس فيه اخطاء اضن انك لم تفهم سؤالى

حتى الكود الذى وضعته فيه نفس المشكل عندك مضاعفة فترة توقف البيك تصبح الازرار غير عمليه تضطر الى الضغط على الزر لوقت طويل نسبيا حتى يعمل الكنتور فى الاتجاه المعاكس
نعم اخي فيه اخطاء فأنت عرفت A0 فقط على انها ادخال و عرفت A1 على انها للاخراج .
ثم اعطيت A0 قيمة صفر مسبقا . و المفروض يأخذها من المفتاح ...
بالاضافة الى ان الكود مطول و فيه تشعبات كثيرة ....
عموما حل مسئلة الوقت بسيط ....

إضافة رد

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

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

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


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

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