أين تضع العمليات الحسابية؟داخل المقاطعة معالج أو حلقة رئيسية؟(تطبيق الوقت الفعلي المضمن)

StackOverflow https://stackoverflow.com//questions/9609882

سؤال

أشعر بتطوير تطبيق مضمن للتحكم في المحركات ولدي شكوك حول ما يجب مع بعض العمليات الحسابية التي تحول القيم الرقمية ADC إلى القيم الفيزيائية الموقعة (AMPS).

هل يجب علي إجراء الحسابات في معالج المقاطعة أو يجب علي استخدام المعالج لتعيين علامة عالمية وإجراء الحسابات في الحلقة الرئيسية عند تعيين العلم؟

شكرا لك مقدما.

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

المحلول

لا يوجد إجابة واحدة - كل شيء لكل هذا.ذلك يعتمد على متطلبات توقيتك، حمل المقاطعة الحالي، إلخ.

إذا كان الأمر بسيطا إلى حد ما أو أي شيء، فسأفعل ذلك فقط في المقاطعة والمضي قدما.

تأكد من أنك تعرف ما تفعله ولا تقضي المزيد من الوقت في مقاطعتك أكثر مما يجب عليك.

نصائح أخرى

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

يعتمد على ما تريد القيام به مع قيم ADC، ومدى سرعة القيام بذلك. إذا كنت بحاجة إلى إجراء بعض الإجراءات الحرجة على أساس قيم ADC، فيجب عليك التعامل مع ذلك في المقاطعة. ومع ذلك، إذا كان هذا هو الحال، لإنقاذ نفسك حساب حساب التناظرية "الحقيقية" لأول مرة من التهم ADC، يجب عليك فقط التعبير عن عتباتك الحرجة فيما يتعلق بتهم ADC.

على سبيل المثال، إذا مخرجات ADC الخاصة بك مخرجات 8 تحسب لكل فولت، وتحتاج إلى إلقاء إيقاف الطوارئ إذا كانت تقارير ADC أكبر من 1.5 فولت، فستكتب كود المقاطعة لإطلاق المحطة الإلكترونية عند 12 مهمة. ثم لا يزال بإمكانك تمرير ADC في الحلقة الرئيسية للترجمة إلى وحدات سهلة الاستخدام لأغراض واجهة المستخدم، إلخ.

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

شيء واحد للتفكير في اتساق البيانات.إذا كنت تحصل على العديد من القيم ذات الصلة من ADC (موضع أو الجهد، والتيار، وما إلى ذلك.) ثم قد ترغب في القيام بشيء ما للتأكد من أنك تعمل مع مجموعة ثابتة.قد يعني هذا أن التحديث الخلفية أفضل من التحديث في ISR.حتى اتساق قراءة واحدة لتمرير معين من الخوارزمية قد تكون مهمة.النظر في رمز الخلفية هذا. giveacodicetagpre.

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