PIC पर इंटरप्ट ऑन चेंज और एक्सटर्नल इंटरप्ट में क्या अंतर है


11

एक तस्वीर पर IOC और EXT इंटरप्ट के बीच फ़ंक्शन में क्या अंतर है? मैं वर्तमान में एक PIC12F1822 का उपयोग कर रहा हूं, और जाँच की अतिरिक्त परत के अलावा आपको IOC के साथ क्या करना है (यानी किस पिन ने रुकावट पैदा की) दोनों समान हैं।

यदि कोई है तो व्यावहारिक अंतर क्या है? आप एक या दूसरे का उपयोग कब करेंगे?

जवाबों:


8

इस दस्तावेज़ को देखें जो बताता है: -

इंटरप्ट-ऑन-चेंज
यह सुविधा बाहरी रुकावट सुविधा के समान है , सिवाय इसके कि किसी भी पिन पर किसी भी परिवर्तन (न कि केवल एक प्रकार का संक्रमण) द्वारा एक पोर्ट परिवर्तन रुकावट को ट्रिगर किया जाएगा जिसके लिए इसे सक्षम किया गया है। यह इसे और अधिक लचीला बनाता है (अधिक पिन पर उपलब्ध है), लेकिन सही तरीके से निपटने के लिए और अधिक कठिन है।


5

यह संभव है कि रुकावट वेक्टर तालिका में कम प्रविष्टियाँ होने से चिप की रुकावट वास्तुकला को सरल बनाया जाए। जब पोर्ट रजिस्टर में बदलाव होता है तो बदलाव पर रुकावट आग लगा सकती है और यह कीपैड मैट्रिक्स की तरह कुछ के लिए उपयोगी हो सकता है जहां आप हर एक पिन के लिए एक इंटरप्ट सर्विस सर्विस (ISR) नहीं लिखना चाहते हैं। आप केवल एक ही लिख सकते हैं जो पूरे पोर्ट के मूल्य की जांच कर सकता है, जो कि हो सकता है कि आप आवेदन के आधार पर वास्तव में रुचि रखते हों।


5

बीच-बीच में परिवर्तन और बाहरी अवरोध पिन के बीच तीन सबसे बड़े अंतर:

  1. बाहरी रुकावट पिन सॉफ्टवेयर को यह निर्दिष्ट करने की अनुमति देता है कि क्या बढ़ते किनारे से या गिरते हुए किनारे से बाधित होना चाहिए; यदि उदाहरण के लिए एक पिन कम है और एक केवल गिरने वाले किनारों में रुचि रखता है, तो पिन के उठने और निर्बाध रूप से गिरने तक एक बाधा उत्पन्न नहीं होगी। व्यवधान-परिवर्तन का उपयोग करते हुए, दोनों घटनाओं पर जागना होगा।
  2. बाहरी रुकावट पिन में व्यक्तिगत लेचिंग स्थिति बिट्स होती है। यहां तक ​​कि अगर एक इनपुट पल्स आता है और इससे पहले कि सॉफ्टवेयर को जवाब देने का मौका मिलता है, तब भी सॉफ्टवेयर यह पता लगा सकता है कि यह हुआ और उपयुक्त रूप से प्रतिक्रिया हुई।
  3. एक i / O पोर्ट को पढ़ना जिसमें पिन-चेंज इंटरप्ट होता है, ठीक उसी समय जब इनपुट में बदलाव होता है, जिसके परिणामस्वरूप पिन-चेंज में रुकावट आ सकती है। इसके विपरीत, I / O पोर्ट को पढ़ने से बाहरी अवरोधक पिन जुड़ा होता है जिसका इंटरट्रप्ट पर कोई प्रभाव नहीं पड़ता है।

पीआईसी के बाहरी व्यवधान सामान्य प्रयोजन के पिन-चेंज इंटरप्ट से अधिक बहुमुखी और विश्वसनीय हैं। जब व्यावहारिक हो तो मैं पूर्व का उपयोग करने का सुझाव दूंगा।


3

मूल रूप से, बाहरी रुकावट एक विशिष्ट (बढ़ते या गिरते हुए, उपयोगकर्ता परिभाषित) किनारे पर शुरू हो जाएगी, जबकि बीच-बीच में परिवर्तन किसी भी किनारे (दोनों बढ़ते और गिरते) पर शुरू हो जाएगा।


कम से कम PIC12F1822 के लिए ओपी का उल्लेख किया गया है, आईओसी को बढ़ते किनारे, गिरने वाले किनारे या दोनों (धारा 13) पर ट्रिगर करने के लिए (उपयोगकर्ता परिभाषित) कॉन्फ़िगर किया जा सकता है। इसलिए मेरे लिए एकमात्र अंतर यह प्रतीत होता है कि बाहरी अवरोधन को केवल दो धारियों में से किसी एक पर ट्रिगर करने के लिए कॉन्फ़िगर किया जा सकता है।
पेटपल्सेन

2

परिवर्तन पर रुकावट आम तौर पर I / O की आधी बाइट के लिए होती है, जहां बाहरी व्यवधान आम तौर पर व्यक्तिगत बिट्स के लिए होते हैं। जैसा कि आपने पहले ही कहा था, आईओसी आईएसआर में एक चीज जो आपको करनी है वह यह है कि कौन सा बिट (या बिट्स) बदल गया है।

IOC उपयोग करने के लिए थोड़ा कठिन भी है, उससे भी आगे। व्यवधान को सक्षम करने से पहले बंदरगाह को पढ़ना अनिवार्य है, और ISR के अंदर पोर्ट को पढ़ने के लिए और भी महत्वपूर्ण है! यदि आपके पास एक धीमी गति से बदलने वाला संकेत है, और सोचें कि आप ISR के अंदर एक ध्वज स्थापित कर सकते हैं और अपने पढ़ने को बाद में ISR के बाहर कर सकते हैं, फिर से विचार करें! पोर्ट का पाठ (या पोर्ट पर कोई बिट, यदि मुझे सही याद है), तो तुलनित्र पर कुंडी को रीसेट करता है जो रुकावट को ट्रिगर करता है। यदि आप इसे ISR के अंदर साफ़ नहीं करते हैं, तो ISR से बाहर निकलते ही यह तुरंत पीछे हट जाएगा। यदि आप ऐसा करना याद रखते हैं, तो यह सब अच्छा है, लेकिन अगर आप भूल जाते हैं और सोचते हैं कि आप पोर्ट को पढ़ सकते हैं, जब आप इसके चारों ओर हो जाते हैं, तो आप थोड़ा निराश हो जाएंगे जब तक कि आप आईएसआर में पढ़ने के लिए याद नहीं करते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.