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

   

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 30-05-2009, 10:40 PM المشاركة 9   
افتراضي



اخي ابو عبد الله : ما هو الكود الخاص بالتايمر ؟

اعلانات

الصورة الرمزية wleed ameer
wleed ameer
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2008
المشاركات: 86
نشاط [ wleed ameer ]
قوة السمعة:
قديم 31-05-2009, 10:14 AM المشاركة 10   
افتراضي


انت طلبت الكود . اما عرض النتيجة فهذا عائد لك .
أخى حيدر : انا أقصد بالكود تعليمة التايمر لأنى لم أستخدمه من قبل وأريد طريقة كتابة التعليمة بالصيغة التى تمكنى من معرفة أنه تم مرور زمن وليكن ثانية ؟
أما أن تعطينى ملف هيكس وتقول الدخل على طرف B0 ! طيب هذا هو الدخل , يعنى عندما هاحمل ملف الهيكس على المتحكم وأعطيه الدخل ماذا أفعل بعد ذلك ؟ فأنا لم أستطيع توصيل شاشة للخرج أم سيفن سيجمنت أم أى شئ من تلقاء نفسى لأن الذى كتب ملف الهيكس هو الذى حدد نوع الخرج ولا يمكن اتخاذ أى خطوة خلاف المقصودة من جهة المصمم ! وأنا لا أريد الحل النهائى بل أريد التعليمة وشرحها إن أمكن !!
( لا تعطينى سمكة جاهزة لكن علمنى كيف أصطادها )
وشكرا

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

الصورة الرمزية wleed ameer
wleed ameer
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2008
المشاركات: 86
نشاط [ wleed ameer ]
قوة السمعة:
قديم 31-05-2009, 10:20 AM المشاركة 11   
افتراضي


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


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 31-05-2009, 01:26 PM المشاركة 12   
win


السلام عليكم
اعتقد ان هذا مثال عن استخدام مقاطعة التايمر0 في الميكروبيزك:
كود:
http://www.mikroe.com/en/books/picbasicbook/06.htm#6.3


program Timer0_1sec

dim cnt as byte
dim  a as byte
dim  b as byte

sub procedure interrupt
  cnt = cnt + 1        ' Increment value of cnt on every interrupt
  TMR0   = 96
  INTCON = $20         ' Set T0IE, clear T0IF
end sub

main:

a = 0
b = 1
OPTION_REG = $84      ' Assign prescaler to TMR0
TRISB  =   0          ' PORTB as output
PORTB  = $FF          ' Initialize PORTB
cnt =   0             ' Initialize cnt
TMR0   =  96
INTCON = $A0          ' Enable TMRO interrupt

' If cnt is 200, then toggle PORTB LEDs and reset cnt
do
  if cnt = 200 then
    PORTB  = not(PORTB)
    cnt = 0
  end if
loop until 0 = 1

end.
المصدر:
http://www.mikroe.com/en/books/picbasicbook/06.htm#6.3


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 31-05-2009, 02:12 PM المشاركة 13   
افتراضي


أخى حيدر : انا أقصد بالكود تعليمة التايمر لأنى لم أستخدمه من قبل وأريد طريقة كتابة التعليمة بالصيغة التى تمكنى من معرفة أنه تم مرور زمن وليكن ثانية ؟
أما أن تعطينى ملف هيكس وتقول الدخل على طرف B0 ! طيب هذا هو الدخل , يعنى عندما هاحمل ملف الهيكس على المتحكم وأعطيه الدخل ماذا أفعل بعد ذلك ؟ فأنا لم أستطيع توصيل شاشة للخرج أم سيفن سيجمنت أم أى شئ من تلقاء نفسى لأن الذى كتب ملف الهيكس هو الذى حدد نوع الخرج ولا يمكن اتخاذ أى خطوة خلاف المقصودة من جهة المصمم ! وأنا لا أريد الحل النهائى بل أريد التعليمة وشرحها إن أمكن !!
( لا تعطينى سمكة جاهزة لكن علمنى كيف أصطادها )
وشكرا
عزيزي وليد :
انت طلبت كود لحساب عدد النبضات في زمن معين صحيح ؟
ولم تحدد الطريقة يعني تريد الكود و خلص ؟ اعطيتك الكود في المرة الاولى وكان ذلك قبل شهر . صحيح ؟ قلت لي انا لا استخدم المايكروسي بل استخدم لغة اخرى . فقلت لك جرب الكود على البروتوس فاذا كان هو البرنامج المطلوب وحلي صحيح . اشرح لك طريقة الكود وانت تكتبها باللغة التي تجيدها . ولتطبيق الكود على البروتوس لا يحتاج الى شاشة عرض او سفن سكمنت تستطيع معرفته من خلال مخارج المتحكم نفسه لانك تعرف الارقام بالنظام الباينري . او توصل ايدات الى المتحكم بشكل مؤقت وهذا فقط لمعرفة اذا كان الكود صحيح ام لا .


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 01-06-2009, 09:30 AM المشاركة 14   
افتراضي


السلام عليكم


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

وذلك لحساب متوسط السرعة !

برجاء الرد
السلام عليكم اخي وليد

ان الفكرة الاساسية تعتمد على ان تستخدم التايمر زيرو لحساب الزمن (ثانية ) ومنها تحصل على ازمنة اكبر ..السؤال الذي يطرح نفسة ما عدد المرات التي ستتكرر فيها النبضات؟؟ هل هي اقل من 255 عندها ستستخدم التايمر بالاضافة الى مقاطعة تحدث عند تغير الطرف RB0 ؟؟ ان الموضوع يحتاج للتعامل مع التايمر زيرو بشكل اساسي..فان كنت مستعجلا فيمكنني ان اساعد بشكل شخصي .يمكنك اضافتي على المسنجر وان نتكلم.. ربنا يوفقك ويجزيك الخير على المداخلات الرائعة ولا تحرمنا منها...

واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..


الصورة الرمزية wleed ameer
wleed ameer
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2008
المشاركات: 86
نشاط [ wleed ameer ]
قوة السمعة:
قديم 01-06-2009, 10:29 AM المشاركة 15   
افتراضي


شكرا لكل من ساهم فى هذه المشاركة ، كما أخص بالشكر الأستاذ زكى شاكر على مجهوده وعلى إضافته للرابط الذى أفادنى كثيرا وأشكر الأستاذ حيدر على رده ومشاركاته رغم اختلاف اللغة المستخدمة بيننا واشكر الأستاذ geniusse01 على تقديرة حرصه على إيصال المعلومة بدقة وجزاكم الله جميعا كل خير ووفقكم لما يحب ويرضى .
أنا كنت مستعجل جدا واستخدمت اسلوب آخر فى حل هذه المشكلة لكن الآن أريد معرفة استخدام التايمر من باب العلم وأظنه أدق حسابيا,


الصورة الرمزية wleed ameer
wleed ameer
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2008
المشاركات: 86
نشاط [ wleed ameer ]
قوة السمعة:
قديم 01-06-2009, 10:37 AM المشاركة 16   
افتراضي


السلام عليكم اخي وليد

ان الفكرة الاساسية تعتمد على ان تستخدم التايمر زيرو لحساب الزمن (ثانية ) ومنها تحصل على ازمنة اكبر ..السؤال الذي يطرح نفسة ما عدد المرات التي ستتكرر فيها النبضات؟؟ هل هي اقل من 255 عندها ستستخدم التايمر بالاضافة الى مقاطعة تحدث عند تغير الطرف RB0 ؟؟ ان الموضوع يحتاج للتعامل مع التايمر زيرو بشكل اساسي..فان كنت مستعجلا فيمكنني ان اساعد بشكل شخصي .يمكنك اضافتي على المسنجر وان نتكلم.. ربنا يوفقك ويجزيك الخير على المداخلات الرائعة ولا تحرمنا منها...

واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..
نعم النبضات أقل من 255 فى الثانية ، أعلم أن الموضوع متعب ويحتاج لشرح ، والله الموفق والهادى وفوق كل ذى علم عليم



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