|
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:328
|
|
20-04-2015, 02:22 PM
المشاركة 8
|
|
التوجيه #fuses
يستخدم هذا التوجيه لتعيين مصهرات التكوين (التهيئة) configuration fuses فى برامج لغة السى للميكروكونترولر PIC .
مثال لصيغة التوجيه :
كود:
#fuses XT,PUT,NOWDT,NOPROTECT,NOBROWNOUT
الخيارات المعرفة فى ملف الرأس للميكروكونترولر PIC16F877 هى :
كود:
Clock Type Select LP, XT, HS, RC
Watchdog Timer Enable WDT, NOWDT
Power Up Timer Enable PUT, NOPUT
Program Code Protect PROTECT, NOPROTECT
In Circuit Debugging Enable DEBUG, NODEBUG
Brownout Reset Enable BROWNOUT, NOBROWNOUT
Low Voltage Program Enable LVP, NOLVP
EEPROM Write Protect CPD, NOCPD
Program Memory Write Protect WRT_50%, WRT_25%,
(with percentage protected) WRT_5%, NOWRT
الحالة الافتراضية للمصهرات إذا لم يتم تضمين هذا التوجيه هى كما يلى :
كود:
#fuses RC,WDT,NOPUT,BROWNOUT,LVP,NOCPD,NOWRT
هذه الحالة تناظر لتحديد جميع بتات سجل التكوين بالحالة المرتفعة .
ملحوظة هامة :
يمكن تأجيل تحديد بتات التكوين حتى يحين وقت البرمجة باستخدام برمجيات جهاز البرمجة .
التوجيه #use delay (clock = 4000000)
البرنامج المذكور أعلاه يستعرض دالة التأخير . إذا لم تتواجد هذه الدالة ، فإن الحلقة سوف يتم تنفيذها فى عدة ميكروثانية ، حيث أن كل تعليمة تأخذ 4 ميكروثانية عند معدل الساعة 1 ميجا هرتز ، ومن ثم فإن وميض الليد لن يمكن ملاحظته . التأخير المطلوب (بالملى ثانية) يعطى كبارامتر للدالة ، وبالرجوع لمكتبة الدالة المتاحة عند بداية البرنامج بالتوجيه #use . هذا التوجيه يخبر المترجم لإيجاد مكتبة الدالة delay_ms() . يجب إعطاء سرعة الساعة فى هذا المتجة حتى يتم حساب التأخير بشكل صحيح داخل الدالة .
هام :
علامة نهاية العبارة :
مترجم لغة السى ليس محددا بالسطر (كما هو الحال فى لغة الأسمبلى) . فمترجم لغة السى يبحث عن علامة انتهاء العبارة أو كتلة (مجموعة) العبارات . هذه العلامة هى الفاصلة المنقوطة ";" فى حالة العبارة الواحدة أو القوس المجعد "}" فى حالة كتلة العبارات .
مثال :
فى هذا المثال ، الطريقتان صحيحتان ، السبب علامة انتهاء العبارة ";" فلا تنسى أن تكتبها عند نهاية كل عبارة حتى لا تحصل على أخطاء عن ترجمة البرنامج .
يوجد العديد من توجيهات قبل المعالج والتى سوف نتناولها تباعا فى حينها .
التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 20-04-2015 الساعة 02:27 PM
|