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

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

ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 586
نشاط [ ahmad abdullah ]
قوة السمعة:0
قديم 25-04-2011, 04:07 PM المشاركة 1   
افتراضي مساعدة في عدّ الPulses Twitter FaceBook Google+



السلام عليكم

اخواني ... لو نفترض ان لدينا مايكروكنترولر و LCD و مصدر PWM
مصدر الPWM يعطينا Pulse مرة Hi و مرة LOW ...

اذا اردت ان اكتب برنامج بالمايكروسي ليعدّ لي عدد الPulses ال Hi ...

هل من مساعدة ؟؟؟

اعلانات

الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,630
نشاط [ 5282 ]
قوة السمعة:111
قديم 25-04-2011, 04:17 PM المشاركة 2   
افتراضي


السلام عليكم

اخواني ... لو نفترض ان لدينا مايكروكنترولر و LCD و مصدر PWM
مصدر الPWM يعطينا Pulse مرة Hi و مرة LOW ...

اذا اردت ان اكتب برنامج بالمايكروسي ليعدّ لي عدد الPulses ال Hi ...

هل من مساعدة ؟؟؟
pwm عدد نبضاتها ثابت والزمن هو الذى يتغير زمن high و low

- واذا اردت عد نبضات يمكنك استخدام مدخل المقاطعة فى الميكروكنترولر كعداد نبضات وزيادت قيمة متغير ما

- و استخدم مقاطعة الوقت timer interrupt لعرض الناتج كل ثانية حتى تعطيك التردد الصحيح

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

ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 586
نشاط [ ahmad abdullah ]
قوة السمعة:0
قديم 25-04-2011, 05:51 PM المشاركة 3   
افتراضي


اخي ... بارك الله فيك ... لكن لماذا يجب استخدام المقاطعة ؟؟


الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,630
نشاط [ 5282 ]
قوة السمعة:111
قديم 26-04-2011, 10:27 AM المشاركة 4   
افتراضي


اخي ... بارك الله فيك ... لكن لماذا يجب استخدام المقاطعة ؟؟
هذا يتوقف على التردد الذى تريد قياسة بالنسبة لسرعة المتحكم وعدد الاكواد .
فاذا كان المتحكم سريع جداا بالنسبة للنبضات المراد قياسها فلا داعى للمقاطعة .


ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 586
نشاط [ ahmad abdullah ]
قوة السمعة:0
قديم 26-04-2011, 02:54 PM المشاركة 5   
افتراضي


اخي صراحة الفكرة هي عبارة عن قياس سرعة محرك ما ... سأضع حساس مثلا انفرا ريد مثلا او اي حساس اخر يفي بالغرض ... عند انقطاع الضوء الخارج من الحساس ، يقوم المايكروكنترولر بمعرفة ذلك و يزيد متغير ما لنسميه x مثلا ... و هكذا انا اعرف كم مرة انقطع الضوء الخارج من الحساس و بعملية حساب معينة اعرف سرعة المحرك لكنني الاحظ ان المتحك سريع جدا فعند اختبار طرفه هكذا مثلا :
if ( porb.f0==1) {x=x+1;}
عند كتابة هذا الكود فان المتحكم يزيد المتغير كثيراً و ليس مرة واحدة ... ستقول لي يجب عليك ان تضع مدة انتظار معينة ، لكن هذا لن يفلح .. اسف اخي اطلت عليك لكن انا عم بحاول تعلم المقاطعة ، احاول ، لكنني اجد صعوبة في تعلمها نظراً لاني اول مرة اتعامل مع الريجيسترات بكثرة


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


تفضل الكود و كما قال الاخوة يجب ان نستخدم المقاطعة .
هذا الكود يعطيك عدد النبضات خلال ثانية و على المنفذ C .

كود:
 
void interrupt() { portc++; intcon.f1=0; } void main() { trisc=0;portc=0;loop: intcon=0b10010000; delay_ms(1000); intcon=0;portc=0; goto loop; }


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


الدائرة



ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 586
نشاط [ ahmad abdullah ]
قوة السمعة:0
قديم 26-04-2011, 07:08 PM المشاركة 8   
افتراضي


الف شكر مهندسنا الغالي دايما بالمرصاد ... لكن هل يمكنك التكرم علينا بشرح الكود ... الف شكر ... سؤال اخر : هل بالضرورة استخدام هذا الPic او اي نوع اخر يفي بالغرض

إضافة رد

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

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

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


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

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