الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال

مغلق
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام يا اخوان

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

بس بالنهاية لا مفر من assemly الخاصة بالpic

initTmr2
bcf   STATUS,RP1; select bank0
bcf   STATUS,RP0
MOVLW   B’01001101’;set prescalor to 4;  post scalor to 10; enable timer2
bsf   INTCON,PEIE
bsf  STATUS,RP0   ;;Select bank1
MOVLW   D’249’
MOVWF  PR2
bsf  PEIE,TMR2IE
bcf  STATUS,RP0
bsf  INTCON,GIE
return

هدا الكود بعمل delay لمدة 10 ms عرفت اكتب الكود ومفهوم كل شي منيح بس السؤال

انا داخل البرنامج الأصلي بس بعمل استدعاء له بالاسم initTmr2 call يعني كل مل بدي delay استدعيه

ام انه هدا الكود بس بعمل initialization

انا بدي اعمل delay 500 ms عن طريق timer2 وطبعا اكبر قيمة مكنة 16*256*16 وهي اقل من 500ms

لذلك رح اعمل 10ms ثم اعمل لووب خارجية 50 مرة تعد

في طريقة باستخدام الinterrupt بس ما فهمت وين اكتبه

على علمي انه الinterrupt ممكن اكتبه متل اي function واخره return و استدعيه ب call

بالتالي ممكن اللووب اللي بتعد ل 50 اخليها هي ال interrupt صح ام خطا

طيب كيف اضعهم داخل بعض ال interrupt وال delay من timer2

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#2

ببساطة

اعمل روتين فرعي للتأخير الزمني

وضع مناداة الروتين داتخل المقاطعة

ومن يتق الله يجعل له مخرجا

]

#3

خلص مشي الحال وفهمت المبدأ وشكرا

اخ عبد الله

thanks

;)

تم تعديل هذه المشاركة بواسطة white soul في 25 مايو 2006 في 17:14

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

هذا الموضوع مغلق.

مواضيع مشابهة