سلام عليكم
انا جربت بالبروتيس وكانت النتيجه كتالي
كتبت برنامج بسيط جدا وأختاريت البك 16f84a
كود:
void main()
{
trisa=0;
while(1)
{
porta=~porta;
delay_ms(5000);
}
}
اختاريت تردد كرستاله 1 ميكا وبعدين 4 ميكا وبعدين 8 ميكا وبعدين 20 ميكا كلهم لاحظت بورت a يضيء وينطفئ بــ 5 ثواني
لذا نصيحتي لك التالي
أخذ الكود سابق وبرمجه على 16f84a واختار مره كرستاله 4 ومره 8
وأخذ عداد الثواني (( موجود في موبايل)) وشوف الزمن هل يتغير أم لا
اذا لم يتغير فمعناه delay لايتأثر بتردد كرستاله واذا تغير وأصبح زمن 2.5 ثانيه ايضا معناه يتأثر (( رغم أني جربته على بروتيس فلم يتأثر أبدا))
ملاحظه مهمه عندما تختار كرستاله 4 تأكد من عدادت مشروع انت مخليه على 4
وكذلك الحال بالنسبه لــ 8 لانك اذا وضعت كرستاله مثلا 8 وأعدادات مشروع باقيه على 4 بالتاكيد راح يصير عندك مشكله بتفيذ الاوامر وماراح تكدر تحكم بشكل صحيح لذا أحذر من عدم مساواه بين تردد كرستاله خارجيه(( طبعا اقصد خارجيه)) وبين ماظبطه في أعدادات مشروع
وبالتوفيق أخي كريم
|
انا متشكر جدا جدا لردك استاذ حسن
فعلا يا استاذ حسن كلام حضرتك صح
قمت بوضع الكود على الميكرو وقمت بالتجربة اول مره على كريستالة 4 ميجا
ووجدت ان الليد يضئ وينطفئ كل خمس ثوانى
وعند وضع كريستالة 8 ميجا وجدت ان الوقت لم يتغير ايضا ولاكنى عندما استخدمت
مقاومة 10 كيلو ومكثف 22 بف بدلا من الكريستالة
وجدت ان وقت تنفيذ الاوامر فى الميكرو غير دقيق
واشعر ان الميكرو بيخرف فى تنفيذ الاوامر
ولكن لى سؤال
انا اعلم ان كلما زادت الكريستالة زادت سرعة تنفيذ الاوامر
والواقع يقول ان الكريستالة عندما تتغير قيمتها لا تؤثر على تنفيذ الاوامر بشئ
اذا كان الوقت فى الميكرو لا يتاثر بقيمة الكريستالة
فما الغرض فى من وضع كريستالة بقيمة معينة ؟