سلام يا اخوان
تقريبا صار عندي فكرة احسن عن كل الموضوع واشتغلت على الميكرو سي وطبقت بعض البرامج ومشي الحال
بس بالنهاية لا مفر من 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