विषयसूची:
- चरण 1: इंटरप्ट हैंडलर
- चरण 2: आवधिक समय अंतराल सेट करें
- चरण 3: इंटरप्ट इनिशियलाइज़ेशन
- चरण 4: अपना कोड कहां जोड़ें
वीडियो: Arduino - आवधिक रुकावट: 4 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह निर्देश Arduino कार्यक्रमों में समय के लिए एक आवधिक रुकावट का उपयोग करने के बारे में है। यह एक नवोदित Arduino प्रोग्रामर के लिए एक कदम है जो जानता है कि Arduino अधिक कर सकता है, लेकिन यह नहीं जानता कि ऐसा कैसे किया जाए।
यदि कोई प्रदर्शन समस्या है तो मुझे लगता है कि आप एक या अधिक देरी() फ़ंक्शंस का उपयोग कर रहे हैं। चाल देरी() फ़ंक्शन से छुटकारा पाने और एक बाधा को प्रतिस्थापित करने के लिए है। देरी () फ़ंक्शन Arduino को विलंब () के पूरा होने की प्रतीक्षा करते हुए कुछ भी नहीं करने के लिए मजबूर करता है। एक रुकावट का उपयोग करने से आपका प्रोग्राम देरी के अंत की प्रतीक्षा करते हुए अन्य काम कर सकता है। आमतौर पर अप्रयुक्त मृत समय की एक बड़ी मात्रा होती है जिसका उपयोग देरी () का उपयोग करते समय अन्य चीजों के लिए किया जा सकता है। इंटरप्ट का उपयोग करने से यह समस्या हल हो जाती है।
चरण 1: इंटरप्ट हैंडलर
1. अपने प्रोग्राम में इंटरप्ट हैंडलर जोड़ें। बस सेटअप के ऊपर कहीं कॉपी और पेस्ट करें ();
कास्ट अहस्ताक्षरित लंबा TIMER0_COUNT = 500; // 500 मिसे टाइमर अंतराल
// TIMER0 इंटरप्ट हैंडलर अस्थिर बूल टाइम = झूठा; ISR (TIMER0_COMPA_vect) {स्थिर अहस्ताक्षरित लंबी गणना = 0; अगर (++गिनती> TIMER0_COUNT) {गिनती = 0; समय = सच; // समय हर TIMER0_COUNT ms पर सही पर सेट होता है } // (मुख्य दिनचर्या में समय को साफ करने की आवश्यकता होती है) }
चरण 2: आवधिक समय अंतराल सेट करें
2. समय अंतराल निर्धारित करें। यह नियमित पिगीबैक खुद को TIMER0 इंटरप्ट पर ले जाता है, जो हर ~ 1 मिसे पर आग लगाने के लिए सेट है।
आपका "अंतराल" प्रक्रिया के लिए TIMER0 इंटरप्ट की संख्या है। प्रत्येक अंतराल ~ 1 मिसे है, इसलिए आप वास्तव में यह निर्धारित कर रहे हैं कि आपके अंतराल को सक्रिय करने से पहले कितने TIMER0 गिनने के लिए बाधित होते हैं। IOW, वेरिएबल TIMER0_COUNT को जितने भी मिलीसेकंड में आप प्रतीक्षा करना चाहते हैं, सेट करें। उदाहरण के लिए, एक सेकंड के आधे हिस्से के लिए 500 का उपयोग करें। 3 सेकंड के लिए 3000 का प्रयोग करें।
चरण 3: इंटरप्ट इनिशियलाइज़ेशन
3. अपने सेटअप () विधि में "TIMER0 इनिशियलाइज़ेशन" कोड जोड़ें। दोबारा, बस सेटअप() में कॉपी और पेस्ट करें।
// *** TIMER0 आरंभीकरण ***
क्ली (); // सभी व्यवधानों को बंद करें TIMSK0 = 0; // कम घबराना OCR0A = 0xBB के लिए टाइमर 0 बंद करें; // मनमाने ढंग से इंटरप्ट काउंट TIMSK0 |= _BV (OCIE0A); // पिग्गी बैक ऑन इंटरप्ट सेई (); // इंटरप्ट को वापस चालू करें
चरण 4: अपना कोड कहां जोड़ें
4. अपने लूप() मेथड में "टाइम चेक" कोड जोड़ें। लूप () में कॉपी और पेस्ट करें।
अगर (समय) {
समय = झूठा; // यहां कुछ करें }
"समय = झूठा;" लाइन महत्वपूर्ण है। इस लाइन के बिना "यहां कुछ करें" लाइन (ओं) को हर बार प्रोग्राम द्वारा लूप () निष्पादित करने पर निष्पादित किया जाएगा।
बेशक, आप अपनी गतिविधियों को "यहां कुछ करें" लाइन में प्रतिस्थापित करते हैं। कुछ टेक्स्ट प्रिंट करने या एलईडी फ्लैश करने से शुरुआत करें।
हो गया!
सिफारिश की:
Arduino कार रिवर्स पार्किंग अलर्ट सिस्टम - कदम दर कदम: 4 कदम
Arduino कार रिवर्स पार्किंग अलर्ट सिस्टम | स्टेप बाय स्टेप: इस प्रोजेक्ट में, मैं Arduino UNO और HC-SR04 अल्ट्रासोनिक सेंसर का उपयोग करके एक साधारण Arduino कार रिवर्स पार्किंग सेंसर सर्किट डिजाइन करूंगा। इस Arduino आधारित कार रिवर्स अलर्ट सिस्टम का उपयोग स्वायत्त नेविगेशन, रोबोट रेंजिंग और अन्य रेंज r के लिए किया जा सकता है
DIY कदम/डीआईआर लेजर गैल्वो नियंत्रक: 5 कदम (चित्रों के साथ)
DIY STEP / DIR LASER GALVO कंट्रोलर: नमस्ते, इस निर्देश में, मैं आपको दिखाना चाहता हूं कि आप ILDA मानक गैल्वो लेजर स्कैनर के लिए अपना खुद का स्टेप / dir इंटरफ़ेस कैसे बना सकते हैं। जैसा कि आप जानते होंगे कि मैं "DIY-SLS-3D-Printer" और "जेआरएलएस १००० DIY एसएलएस-३डी-पी
पिक्सेल किट चल रहा है माइक्रोपायथन: पहला कदम: 7 कदम
पिक्सेल किट रनिंग माइक्रोपायथन: पहला कदम: कानो के पिक्सेल की पूरी क्षमता को अनलॉक करने की यात्रा फ़ैक्टरी फ़र्मवेयर को माइक्रोपायथन के साथ बदलने के साथ शुरू होती है लेकिन यह केवल शुरुआत है। Pixel Kit पर कोड करने के लिए हमें अपने कंप्यूटरों को इससे कनेक्ट करना होगा। यह ट्यूटोरियल समझाएगा कि क्या
बैटरी के आंतरिक प्रतिरोध को मापने के लिए 4 कदम: 4 कदम
बैटरी के आंतरिक प्रतिरोध को मापने के लिए 4 कदम: यहां 4 सरल चरण दिए गए हैं जो बैटर के आंतरिक प्रतिरोध को मापने में आपकी मदद कर सकते हैं।
STM32CubeMX बटन रुकावट के साथ शुरू होता है: 5 कदम
STM32CubeMX बटन डिबेट विथ इंटरप्ट: हाय, इस ट्यूटोरियल में मैं बटन बाउंस को रोकने के लिए अपना सरल समाधान देने की कोशिश करूंगा जो कि बहुत गंभीर मुद्दा है। इंटरनेट पर इस मुद्दे के समाधान की पेशकश करने के लिए कई वीडियो हैं, लेकिन उनमें से बाहरी रुकावट के लिए नहीं हैं। इन सभी वीडियो में बटन