मैं इन संगीत निर्देशकों का निर्माण करता हूं ।
केवल यह वास्तव में एक अनुक्रमक नहीं है, यह एक अनुक्रमकर्ता के लिए एक भौतिक इंटरफ़ेस है। सीक्वेंसर एक एप्लिकेशन है जो एक लैपटॉप पर चलता है जिसे सीक्वेंसर कनेक्ट करता है, यह चीज उपयोगकर्ता को मक्खी पर ड्रम लूप बनाने देती है। यह बहुत मजेदार है, लेकिन इसके लिए लैपटॉप की आवश्यकता होती है क्योंकि सीक्वेंसर 'ऑन-बोर्ड' नहीं है।
मुझे अपने डिवाइस पर सीक्वेंसिंग करना अच्छा लगेगा।
अब मान लें कि मैं जानता हूं कि यूएसबी मिडी कनेक्टिविटी के लिए क्लास कंप्लायंस के लिए कैसे हल किया जाए, और यह भी मान लें कि मैं यह पता लगा सकता हूं कि 5 पिन डिन पोर्ट से मिडी नोट्स भेजने के लिए एक आर्दीनो को कैसे वायर किया जाए। इवेंट लूप के हर रन पर मिनट मात्रा में असंगत समय के कारण समय के साथ मैं सबसे अधिक चिंतित हूं।
कुछ बातें जो मुझे पता हैं:
आपको
delay()
टेम्पो लूप को नियंत्रित करने के लिए भरोसा नहीं करना चाहिए । विलंब फर्मवेयर के सभी ऑपरेशन को रोक देता है, और यह काम नहीं कर सकता क्योंकि मुझे अनुक्रम चलने के दौरान भौतिक उपयोगकर्ता इंटरफ़ेस को बदलने की आवश्यकता है।पर आधारित गणना
millis()
बेहतर होती है क्योंकि फ़र्मवेयर तब भी काम कर सकता है जब एक निश्चित गिनती समाप्त हो जाती है।भले ही मेरा कोई भी भौतिक नियंत्रण व्यवधान दिनचर्या को चालू न कर रहा हो, लेकिन कुछ संचालन मुख्य
loop()
से चलने में देरी कर सकते हैं । यदि मैं एक फ़ंक्शन डिज़ाइन करता हूं जो उपयोगकर्ता इनपुट की प्रतीक्षा करता है, तो यह स्पष्ट रूप से एक "समय सीमा" के लापता होने की समस्या पैदा कर सकता है यदिmillis()
गिनती खत्म हो गई है। मुझे पता है कि यह समस्या मेरे अपने डिजाइन की है ...
प्रशन:
A. क्या एवीआर-आधारित आर्दीनो एक यूजर इंटरफेस को प्रदूषित करने और एक मिशन क्रिटिकल टाइमिंग लूप चलाने के लिए एक उपयुक्त माइक्रोकंट्रोलर है? मुझे पता है कि वहाँ एक एआरएम Arduino आधारित है जो अब बहुत तेज़ है। एक Teensy 3.0 एक बेहतर विकल्प होगा? ये दोनों 3.3 वी बोर्ड हैं, इसलिए इसके साथ काम करने के लिए मुद्दों का एक और सेट है ... लेकिन मैं अभी के लिए इसे अनदेखा करूंगा।
B. क्या मुझे कार्य को दो माइक्रोप्रोसेसरों में विभाजित करना चाहिए? एक मतदान और यूजर इंटरफेस को अपडेट करने के लिए और दूसरा मिशन क्रिटिकल टाइमिंग लूप के लिए।
सी। कुछ और?
मेरा मुख्य लक्ष्य कंप्यूटर का उपयोग नहीं करना है। मैं स्विंग के लिए भी गणना करना चाहता हूं, लेकिन इस मामले में, स्विंग का मतलब नहीं है अगर मुझे लॉक और टाइमिंग सटीक टेम्पो नहीं मिला है। आपके सुझाव के लिए धन्यवाद!
noInterrupts();
घबराना बंद कर देता है, लेकिन यह भी बंद हो जाता है सभी चाहता था बाधित।