سؤال

لقد انتهيت للتو من فئة المعالجات الدقيقة في الكلية قبل بضعة أسابيع فقط، وهناك برمجنا في التجميع فقط. لقد تعلمنا مبلغا عاديا (IMHO) حول المقاطعات.

إليك سؤالي: أنا برمجة في C باستخدام برنامج التحويل البرمجي HITECH ل 16F684، في قسم ورقة البيانات يناقش المقاطعات (الموافقة المسبقة عن علم 16F684 ورقة البيانات القسم 12.4) تقول إن البرنامج سوف يذهب إلى مقاطعة المقاطعة 0x0004. باستخدام التجميع في فئة المعالجات الدقيقة الخاصة بي، سنقوم ببساطة بإعداد بيان .org مشيرا إلى هذا العنوان واكتب التجميع المطلوب أدناه لذلك عندما يحدث المقاطعة فسوف يقفز هناك وتشغيله. يمكنني معرفة أنه في التجميع، ولكن عندما لا أعتقد أن برنامج I في CI لا أصدق أنني أتعرض للسيطرة حيث يتم وضع قطع البرنامج في الذاكرة، والذي يعرض مشكلة. لا يمكنني معرفة كيفية وضع الأوامر في المقاطعة في C.

واسمحوا لي أن أعرف إذا كنت بحاجة إلى توضيح!

هل كانت مفيدة؟

المحلول

هذه الأسئلة الشائعة بواسطة Microchip لديه بعض المعلومات حول استخدام المقاطعات تحت HITECH C.

نصائح أخرى

hitech c يمتد لغة c مع interrupt نوع الوظيفة:

void interrupt my_interrupt_handler (void) {
    handle_interrupts_here();
}

أنت حقا يجب أن تحصل على دليل التحويل البرمجي. أعتقد أن دليل PIC-Lite مجاني للتنزيل، على الأقل كان عندما قمت بتنزيل نسختي في بعض الوقت في عام 2001.

يجب أن تحفر في وثائق Hitech، ولكن غالبا ما يكون للمجمعات الكلمات الرئيسية الخاصة لتحديد وظائف المقاطعة. يتعين على المحول البرمجي، أو نظام التشغيل، التعامل مع دالة يتم استدعاؤها بواسطة المقاطعة خصيصا: بالإضافة إلى إعداد المتجه، يجب على نظام التحويل البرمجي (أو نظام التشغيل) الحفاظ على جميع السجلات. قد لا يلزم القيام بذلك للحصول على وظيفة طبيعية غير مقاطعة.

الدليل سيكون صديقك.

ال محامرة CCS للحصول على بلدان جزر المحيط الهادئ يستخدم # Int_ * برنامج التحويل البرمجي أو "سمات" على وظائف معالجة المقاطعة لمصادر المقاطعة المختلفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top