جميل أخي محمد المقاطعات من أهم مواضيع البرمجة.
المشكلة هى
فين الامر اللى يجعل المايكروكنتروللر يقدر يقيس التردد الداخل له؟
|
بعد إذن المهندس حيدر .
لفهم طريقة قياس التردد نعود الى مفهوم التردد نفسه.
ما هو التردد ؟
ابسط التعاريف تقول ان تردد إشارة ما هو مجموع عدد دورات تلك الاشارة خلال زمن قدره تانية واحدة.
يعني تردد 10 هرتز = 10 دورات في التانية الواحدة .
كيف يتم القياس بناء عليه؟
القياس يكون بفتح الباب امام التردد الداخل مدة من الزمن قدرها 1 تانية وعرض الناتج على شاشة او عارضات .
من سيقوم بالعد هو متغير وقد اختار له المهندس حيدر اسم x
بمجرد ان يتم تفعيل مقاطعة الطرف RB0 ، كل نبضة تدخل من الرجل RB0 ستجعل ذلك العداد يزيد بواحد
وبالتزامن مع ذلك يبدأ زمن تأخير 1 تانية (993 ميلي تانية في الكود)
عند انتهاء زمن التأخير يكون العداد قد راكم 10 مرات اي 10 هرتز.
محتوى العداد x سيتم وضعه بعد المعالجة الضرورية في شاشة العرض
الان لماذا 993ms وقد قلنا 1 تانية ؟
في الحقيقة هذه فكرة ذكية تأخذ بعين الاعتبار ان تنفيذ تعليمات زمن التأخير يستغرق وقتا أطول قليلا.
هذا الشرح حسب فهمي للكود فإذا كان به خطأ ارجو ان يتم تصحيحه .