السلام عليكم ورحمة الله وبركاته
التايمر زيرو
========
درسنا اليوم بمشيئة الله تعالى مع التايمر زيرو ، وندرس فيه مقاطعة التايمر زيرو والمسؤل عنها البت السادس من السجل :-
intcon
وكما قلنا أننا فى حالة احتياجنا لإستخدام أى مقاطعة يجب تفعيل البت الثامن قبل أى شئ وعلى هذا فإننا بحاجة لتفعيل البت الثامن والسادس فى حالتنا هذه كما يلى :-
intcon = %10100000
وهذا بالنظام الثنائى وهى توافق بالنظام السداسى عشر الكود التالى :-
intcon =$A0
ولن تفرق بأى من الطريقتان سنكتب كما يمكننا الكتابة بالنظام العشرى المعتاد .
والآن قد فعلنا التايمر زيرو والذى يعنى أن سجل التايمر زيرو كلما امتلئ بكامل البتات وأصبح 256 سيعود تلقائيا للصفر وهذه خاصية هذا السجل ولكن ستحدث المقاطعة بمجرد عودته لصفر ومعنى المقاطعة أن البرنامج الفرعى الخاص بالمقاطعة سينفذ فى الحال ، وبما أن العملية الواحدة من عمليات البيك ( المايكروكنترولر من عائلة البيك ) تستغرق أربع دورات ساعة فإننا سنجرى حساباتنا على ربع قيمة المذبذب المستخدم والذى سنستخدمه فى مثالنا هو المذبذب الداخلى وقيمته 4 ميجا هيرتز .
نريد إجراء مثال على حساب زمن 1 ثانية ؟؟
نأتى إلى الخطوات التالية :-
أولا نرسم هذا المشروع البسيط على برنامج المحاكاة :-
كما نرى فإن المشروع عبارة عن متحكم فقط لاغير وسنقوم بالنقر المزدوج على المتحكم لتظهر لنا النافذة الموضحة فى الصورة ونقوم بتحديد قيمة المذبذب واختيار ملف الهيكس
بعد ذلك نقوم بعمل هذه المعادلة
نقسم ربع قيمة الكريستالة على 256
فإذا كانت الكريستالة تساوى 4000000 فإننا نقسم
1000000 ÷256 = 3906,25
ونأخذ الرقم الصحيح فيكون
3906
نقوم بتجربة قسمة هذا الرقم على إحدى أرقام الجدول :-
علينا أن نختار رقم من الأرقام الموجودة فى الجدول
2 أو 4 أو 8 أو 16 أو 32 أو 64 أو 128 أو 256
ونقوم بقسمة الرقم الصحيح الذى استخرجناه ألا وهو 3906 على رقم من الجدول بحيث يكون الناتج عددا صحيحا أو أقرب قيمة لعدد صحيح ونبدأ بالإختيار من 256 ونجرب القسمة فنرى :-
3906÷256= 15.257
نجرب رقم آخر وليكن 64 كما يلى
3906÷64= 61.03
القيمة قريبة للعدد الصحيح فإن تصادف أن وجدنا عدة أرقام قريبة من العدد الصحيح كالسابق نقوم بعمل اختبار دقة بالعكس كما يلى
نختار الناتج الأخير مع إهمال الكسر فيكون 61
نضربه فى رقم الجدول الذى اخترناه كما يلى
61* 64 = 3904
طبعا الرقم تغير قليلا بعد اهمال الكسر !
لا بأس نكمل بضرب الرقم الناتج هذا فى 256 القيمة الكاملة للبايت الخاصة بالسجل كما يلى
3904 * 256 = 999424
طبعا رقم قريب من 1000000 وهو قيمة ربع الكريستالة ،
لذلك سنختار هذا الرقم من الجدول 64
هذه الخطوات هامة جدا .
يتبع