- I2C संचार प्रोटोकॉल क्या है?
- कैसे I2C संचार काम करता है?
- I2C संचार का उपयोग करने के लिए कहां?
- I2 Nuvoton N76E003 पर - हार्डवेयर की आवश्यकता
- Nuvoton N76E003 के साथ AT24LC64 को इंटरफैस करना - सर्किट आरेख
- नुवोतन N76E003 पर I2C पिंस
- N76E003 में I2C संचार
- I2C संचार के लिए प्रोग्रामिंग N76E003
- कोड और आउटपुट चमकती
एम्बेडेड अनुप्रयोगों की विशाल प्रणाली में, कोई भी माइक्रोकंट्रोलर सभी गतिविधियों को खुद से नहीं कर सकता है। समय के कुछ चरण में, इसे साझा करने के लिए अन्य उपकरणों से संवाद करना पड़ता है, इन informations को साझा करने के लिए कई अलग-अलग प्रकार के संचार प्रोटोकॉल हैं, लेकिन सबसे अधिक उपयोग किए जाने वाले USART, IIC, SPI और CAN हैं । प्रत्येक संचार प्रोटोकॉल का अपना लाभ और नुकसान है। आइए अब मैं इस ट्यूटोरियल में सीखने के लिए आइआइसी के हिस्से पर ध्यान केंद्रित करता हूं । यदि आप यहाँ नए हैं, तो Nuvoton Tutorials देखें जहाँ हमने N76E003 माइक्रोकंट्रोलर के प्रत्येक परिधीय पर चर्चा की है जो बहुत ही मूल तरीके से शुरू किया गया ट्यूटोरियल है। यदि आप अन्य माइक्रोकंट्रोलर के साथ I2C का उपयोग करना सीखना चाहते हैं, तो आप नीचे दिए गए लिंक देख सकते हैं।
- Arduino में I2C का उपयोग कैसे करें: दो Arduino बोर्डों के बीच संचार
- PIC माइक्रोकंट्रोलर PIC16F877 के साथ I2C संचार
- I2C का उपयोग करते हुए ESP32 के साथ 16X2 एलसीडी को इंटरफैस करना
- MSP430 लॉन्चपैड के साथ I2C संचार
- I2C का उपयोग किए बिना NodeMCU के साथ एलसीडी को इंटरफैस करना
- Arduino के एक कार्यक्रम में बहु संचार (I2C SPI UART) को कैसे संभालना है
I2C एक महत्वपूर्ण संचार प्रोटोकॉल है जो फिलिप्स (अब एनएक्सपी) द्वारा विकसित किया गया है। इस I2C प्रोटोकॉल का उपयोग करके, एक MCU को कई उपकरणों के साथ जोड़ा जा सकता है और संचार शुरू किया जा सकता है। I2C केवल दो तारों के साथ काम करता है, अर्थात् एसडीए और एससीएल। जहाँ SDA का मतलब होता है सीरियल डेटा और SCL का मतलब होता है सीरियल क्लॉक। हालांकि, इन दो पिनों को वीसीसी वोल्टेज स्तर तक पुल-अप प्रतिरोधों की आवश्यकता होती है और पर्याप्त पुल-अप प्रतिरोधक के साथ, बस एक अद्वितीय पते के साथ 127 उपकरणों का समर्थन कर सकती है।
I2C संचार प्रोटोकॉल क्या है?
IIC शब्द " इंटर इंटीग्रेटेड सर्किट " के लिए है। इसे सामान्य रूप से I2C के रूप में निरूपित किया जाता है या I C या कुछ स्थानों पर 2-वायर इंटरफ़ेस प्रोटोकॉल (TWI) के रूप में भी स्क्वेर किया जाता है, लेकिन यह सभी का अर्थ समान है। I2C एक तुल्यकालिक संचार प्रोटोकॉल अर्थ है, दोनों डिवाइस जो सूचना साझा कर रहे हैं, उन्हें एक सामान्य घड़ी संकेत साझा करना होगा। इसमें जानकारी साझा करने के लिए केवल दो तार हैं, जिसमें से एक का उपयोग घड़ी संकेत के लिए किया जाता है और दूसरे का उपयोग डेटा भेजने और प्राप्त करने के लिए किया जाता है।
कैसे I2C संचार काम करता है?
I2C संचार पहली बार फिलिप्स द्वारा पेश किया गया था। जैसा कि पहले कहा गया था, इसमें दो तार हैं, ये दो तार दो उपकरणों में जुड़े होंगे। यहाँ एक उपकरण को मास्टर और दूसरे उपकरण को दास कहा जाता है । संचार हमेशा दो और एक मास्टर और एक दास के बीच होना चाहिए । I2C संचार का लाभ यह है कि एक से अधिक दास एक मास्टर से जुड़े हो सकते हैं।
संपूर्ण संचार इन दो तारों के माध्यम से होता है, सीरियल क्लॉक (एससीएल) और सीरियल डेटा (एसडीए)।
सीरियल क्लॉक (SCL): मास्टर द्वारा उत्पन्न घड़ी संकेत को दास के साथ साझा करता है
सीरियल डेटा (एसडीए): मास्टर और गुलाम के बीच और बाहर डेटा भेजता है।
किसी भी समय, केवल मास्टर संचार शुरू करने में सक्षम होगा। चूंकि बस में एक से अधिक दास हैं, इसलिए स्वामी को एक अलग पते का उपयोग करके प्रत्येक दास का उल्लेख करना होगा। जब केवल उस विशेष पते के साथ सलामी को संबोधित किया जाता है, तो जानकारी के साथ वापस जवाब दिया जाएगा, जबकि अन्य चुप रहते हैं। इस तरह, हम एक ही बस का उपयोग कई उपकरणों के साथ संवाद करने के लिए कर सकते हैं।
I2C संचार का उपयोग करने के लिए कहां?
I2C संचार का उपयोग केवल कम दूरी के संचार के लिए किया जाता है । यह निश्चित रूप से एक हद तक विश्वसनीय है क्योंकि इसमें स्मार्ट बनाने के लिए एक सिंक्रनाइज़ घड़ी पल्स है। यह प्रोटोकॉल मुख्य रूप से सेंसर या अन्य उपकरणों के साथ संचार करने के लिए उपयोग किया जाता है, जिसे किसी मास्टर को जानकारी भेजनी होती है। यह बहुत आसान है जब एक माइक्रोकंट्रोलर को केवल अन्य तारों का उपयोग करके कई अन्य गुलाम मॉड्यूल के साथ संवाद करना पड़ता है। यदि आप लंबी दूरी की संचार की तलाश कर रहे हैं, तो आपको RS232 की कोशिश करनी चाहिए और यदि आप अधिक विश्वसनीय संचार की तलाश कर रहे हैं, तो आपको एसपीओ प्रोटोकॉल की कोशिश करनी चाहिए।
I2 Nuvoton N76E003 पर - हार्डवेयर की आवश्यकता
इस परियोजना की आवश्यकता के रूप में N76E003 का उपयोग कर I2C संचार सीखना है, हम एक EEPROM का उपयोग करेंगे जो I2C डेटा लाइन के साथ जुड़ा होगा। हम कुछ डेटा EEPROM में संग्रहीत करेंगे और इसे भी पढ़ें और इसे UART स्क्रीन का उपयोग करके प्रदर्शित करें।
चूंकि संग्रहीत मूल्य UART में मुद्रित किया जाएगा, इसलिए UART कनवर्टर को किसी भी प्रकार की USB की आवश्यकता होती है। यदि आप N76E003 पर UART के संचार के लिए नए हैं, तो आप Nuvoton के साथ UART पर ट्यूटोरियल देख सकते हैं। हमारे आवेदन के लिए, हम CP2102 UART से USB कनवर्टर का उपयोग करेंगे। उपरोक्त के अलावा, हमें निम्नलिखित घटकों की भी आवश्यकता है-
- EEPROM 24C02
- 2pcs 4.7k प्रतिरोधों
उल्लेख करने के लिए नहीं, उपरोक्त घटकों के अलावा, हमें एक N76E003 माइक्रोकंट्रोलर आधारित विकास बोर्ड के साथ-साथ न्यू-लिंक बाड़मेर की आवश्यकता है । इसके अतिरिक्त, सभी घटकों को जोड़ने के लिए ब्रेडबोर्ड और हुकअप तारों की भी आवश्यकता होती है।
Nuvoton N76E003 के साथ AT24LC64 को इंटरफैस करना - सर्किट आरेख
जैसा कि हम नीचे योजनाबद्ध में देख सकते हैं, EEPROM I2C लाइन में दो पुल अप प्रतिरोधों के साथ जुड़ा हुआ है। चरम बाईं ओर, प्रोग्रामिंग इंटरफ़ेस कनेक्शन दिखाया गया है।
मैंने AT24LC64 IC के लिए एक ब्रेडबोर्ड का उपयोग किया और जम्पर तारों का उपयोग करके IC को मेरे nuvoton प्रोग्रामर बोर्ड से जोड़ा। Nu- इंक प्रोग्रामर के साथ मेरा हार्डवेयर सेटअप नीचे दिखाया गया है।
नुवोतन N76E003 पर I2C पिंस
N76E003 का पिन आरेख नीचे चित्र में देखा जा सकता है-
जैसा कि हम देख सकते हैं, प्रत्येक पिन के अलग-अलग विनिर्देश हैं और प्रत्येक पिन का उपयोग कई उद्देश्यों के लिए किया जा सकता है। हालांकि, पिन 1.4 का उपयोग I2C एसडीए पिन के रूप में किया जाता है, यह PWM और अन्य कार्यक्षमता खो देगा। लेकिन यह एक समस्या नहीं है क्योंकि इस परियोजना के लिए एक और कार्यक्षमता की आवश्यकता नहीं है। P1.3 के लिए यही बात I2C की SCL पिन होगी ।
चूंकि I2C पिन एक GPIO के रूप में कार्य करता है, इसलिए इसे कॉन्फ़िगर करने की आवश्यकता है। सभी GPIO पिन को नीचे वर्णित मोड में कॉन्फ़िगर किया जा सकता है।
डेटशीट के अनुसार, PxM1.n और PxM2 । n दो रजिस्टर हैं जिनका उपयोग I / O पोर्ट के नियंत्रण संचालन को निर्धारित करने के लिए किया जाता है। डेटाशीट में, यह कहा गया है कि I2C की कार्यक्षमता का उपयोग करने के लिए, I / O मोड को I2C से संबंधित संचार के लिए ओपन-ड्रेन के रूप में उपयोग करने की आवश्यकता है।
N76E003 में I2C संचार
I2C परिधीय किसी भी माइक्रोकंट्रोलर यूनिट के लिए एक महत्वपूर्ण चीज है जो I2C सुविधाओं का समर्थन करता है। कई प्रकार के विभिन्न माइक्रोकंट्रोलर एक इन-बिल्ट I2C परिधीय के साथ आते हैं। हालांकि, कुछ मामलों में, I2C को सॉफ़्टवेयर नियंत्रण का उपयोग करके मैन्युअल रूप से कॉन्फ़िगर किया जा सकता है जहां I2C संबंधित हार्डवेयर समर्थन उपलब्ध नहीं है (उदाहरण के लिए, कई 8051 माइक्रोकंट्रोलर)। हालाँकि, nuvoton N76E003 I2C परिधीय समर्थन के साथ आता है।
M76E003 I2C मोड में चार प्रकार के ऑपरेशनों का समर्थन करता है - मास्टर ट्रांसमीटर, मास्टर रिसीवर, स्लेव ट्रांसमीटर और स्लेव रिसीवर। यह I2C लाइन के लिए मानक (100kbps) और तेज (400kbps तक) गति का भी समर्थन करता है। I2C SCL और SDA सिग्नल लाइनों में कुछ सामान्य नियमों के साथ काम करता है।
शुरू और बंद हालत:
यह I2C संचार में एक महत्वपूर्ण बात है। जब डेटा को I2C लाइन में स्थानांतरित किया जाता है, तो यह शुरुआती स्थिति से शुरू होता है और एक स्टॉप स्थिति के साथ समाप्त होता है।
एससीएल लाइन अधिक होने पर और एससीएल लाइन अधिक होने पर एसडीए पर स्टॉप की स्थिति कम-से-उच्च संक्रमण है, एसडीए पर संक्रमण की उच्च स्थिति निम्न-आरंभिक संक्रमण है। ये दो स्थितियां मास्टर द्वारा बनाई जाती हैं (MCU या कुछ भी जो अन्य दास उपकरणों को नियंत्रित कर रहा है)। स्टॉप कंडीशन शुरू होने पर बस लाइन इस अवस्था में व्यस्त रहती है और स्टॉप कंडीशन शुरू होने पर फिर से फ्री रहती है।
स्टार्ट और स्टॉप की स्थिति N76E003 डेटशीट में संकेत परिप्रेक्ष्य में उत्कृष्ट रूप से दिखाई गई है-
डेटा प्रारूप के साथ 7-बिट पता:
N76E003 7-बिट पते और डेटा प्रारूप का समर्थन करता है। प्रारंभ स्थिति शुरू होने के बाद, मास्टर डिवाइस को I2C लाइन पर डेटा भेजने की आवश्यकता होती है। पहला डेटा एक महत्वपूर्ण है। यदि यह डेटा ठीक से बनाया या प्रसारित नहीं किया गया है, तो कनेक्टेड डिवाइस की पहचान नहीं की जाएगी और आगे संचार नहीं किया जा सकता है।
डेटा में 7-बिट लंबा दास पता होता है, जिसे SLA के रूप में चिह्नित किया जाता है। यह 7-बिट लंबा पता प्रत्येक डिवाइस के लिए अद्वितीय होने की आवश्यकता है यदि बस में कई डिवाइस जुड़े हुए हैं। 7-बिट पते के बाद, 8 बिट डेटा दिशा बिट है। इसका मतलब है, 8 वें बिट के आधार पर, मास्टर दास डिवाइस को जानकारी भेजता है कि क्या डेटा दास डिवाइस में लिखा जाएगा या डेटा दास डिवाइस से पढ़ा जाएगा। 8 वां बिट आर / डब्ल्यू बिट है जिसे रीड या राइट नोटिफ़ायर कहा जाता है। जैसा कि हम सभी जानते हैं कि 8-बिट जानकारी 128 प्रकार हो सकती है, इस प्रकार 128 डिवाइस का समर्थन करता है, लेकिन I2C एक ही बस में 127 प्रकार के उपकरणों का समर्थन करता है, लेकिन 128 नहीं। क्योंकि 0x00 पता एक आरक्षित पता है जिसे सामान्य कॉल एड्रेस कहा जाता है। यदि स्वामी सभी उपकरणों को जानकारी भेजना चाहता है,यह 0x00 को संबोधित करेगा और प्रत्येक उपकरण अलग-अलग सॉफ़्टवेयर कॉन्फ़िगरेशन के अनुसार उसी तरीके से फिर से करेगा।
इस प्रकार, डेटा ट्रांसमिशन नीचे की तरह दिखता है-
स्वीकार करें:
उपरोक्त डेटा पता छवि में, आर / डब्ल्यू बिट के बाद 9 वें बिट को पावले बिट कहा जाता है। यह एक महत्वपूर्ण है क्योंकि इस बिट का उपयोग करते हुए, मास्टर या दास एसडीए लाइन को कम करके डेटा ट्रांसमीटर पर प्रतिक्रिया करता है। पावती बिट प्राप्त करने के लिए, ट्रांसमीटर को एसडीए लाइन जारी करने की आवश्यकता है।
I2C संचार के लिए प्रोग्रामिंग N76E003
इस ट्यूटोरियल में उपयोग किया गया पूरा प्रोग्राम इस पेज के निचले भाग में पाया जा सकता है। कोड में महत्वपूर्ण खंडों की व्याख्या इस प्रकार है-
पिन को ओपन ड्रेन के रूप में सेट करें और I2C के लिए उन्हें कॉन्फ़िगर करें:
आइए सबसे पहले I2C पिन सेक्शन से शुरुआत करें। जैसा कि पहले बताया गया है, I2C SCL और SDA पोर्ट को कॉन्फ़िगर करने और ओपन-ड्रेन कॉन्फ़िगरेशन के रूप में सेट करने की आवश्यकता है। ऐसा करने के लिए, हम I2C.ch स्रोत फ़ाइल के साथ एक I2C.h हेडर फ़ाइल का उपयोग कर रहे हैं । कोड स्निपेट इस तरह दिखता है-
do {P13_OpenDrain_Mode; P14_OpenDrain_Mode; clr_I2CPX;} जबकि (0)
उपरोक्त कोड P13 और P14 को ओपन-ड्रेन पिन के रूप में सेट कर रहा है और P1.3 पर P1.3 और SDA पिन के रूप में P13 और P14 को चुनने के लिए clr_I2CPX का उपयोग किया जाता है।
यह I2CPX I2C नियंत्रण रजिस्टर के 0 सा है I2CON । यदि यह I2C_PX 1 के रूप में सेट है, तो P0.2 को SCL और P1.6 को SDA के रूप में बदल दिया जाता है। हालाँकि, हम P13 और P14 का उपयोग करेंगे। यहां वैकल्पिक पिन का उपयोग नहीं किया जाता है।
I2C नियंत्रण रजिस्टर I2CON:
I2C नियंत्रण रजिस्टर I2CON का उपयोग I2C संचालन को नियंत्रित करने के लिए किया जाता है। पहला बिट I2C पिन चयन बिट है। इसे 0 पर सेट करने से I2C पिन P13 और P14 के रूप में कॉन्फ़िगर हो जाता है।
एए बिट एग्लैज एंगल ध्वज है, यदि एए ध्वज सेट किया गया है, तो एससीएल लाइन के पावती घड़ी पल्स के दौरान एक एसीके वापस आ जाएगा। यदि इसे मंजूरी दे दी जाती है, तो SCL लाइन की स्वीकृत घड़ी पल्स के दौरान एक NACK (SDA पर उच्च स्तर) वापस आ जाएगी।
अगला बिट SI है जो I2C स्टेटस इंटरप्ट है। यदि I2C स्थिति इंटरप्ट सक्षम है, तो उपयोगकर्ता को यह निर्धारित करने के लिए I2STAT रजिस्टर की जांच करनी चाहिए कि कौन सा कदम पारित किया गया है और उसे कार्रवाई करनी चाहिए।
STO, मास्टर मोड में सेट किया गया STOP ध्वज है। STOP की स्थिति का पता लगने के बाद STO हार्डवेयर द्वारा स्वचालित रूप से साफ़ हो जाता है।
अगला बिट एसटीए बिट है। यदि यह ध्वज सेट है, तो I2C एक मुफ़्त स्थिति उत्पन्न करता है यदि बस मुक्त है। यदि बस व्यस्त है, तो I2C एक STOP स्थिति की प्रतीक्षा करता है और एक START शर्त का पालन करता है। यदि STA सेट है जबकि I2C पहले से ही मास्टर मोड में है और एक या एक से अधिक बाइट्स प्रेषित या प्राप्त किए गए हैं, तो I2C एक दोहराया START स्थिति उत्पन्न करता है। सॉफ्टवेयर द्वारा मैन्युअल रूप से STA को साफ़ करने की आवश्यकता है।
पिछले एक, I2CEN I2C बस सक्षम या अक्षम बिट है।
EEPROM 24C02:
अब, 24C02 पर आ रहा है। N76E003 के बोर्ड सपोर्ट पैकेज में 24LC64 के लिए I2C कोड है और इसे आसानी से संशोधित किया जा सकता है। हालांकि, हम I2C फ़ंक्शन को समझने के लिए एक सरल विधि का उपयोग करेंगे।
यदि कोई EEPROM 24C02 के साथ विस्तृत अंतराल का उपयोग करना चाहता है, तो BSP में EEPROM प्रोग्राम का उपयोग किया जा सकता है।
हम केवल I2C में 24C02 को जोड़ेंगे जहां N76E003 मास्टर होगा और EEPROM एक दास होगा। इस प्रकार, हम EEPROM पते में कोई भी डेटा लिखेंगे और उसी को पढ़ेंगे।
24C02 EEPROM पिनआउट को नीचे दिखाया गया है-
A0, A1 और A2 तीन एड्रेस सिलेक्शन पिन हैं। WP पिन लिख रहे हैं पिन को सुरक्षित रखें और EEPROM में लेखन को सक्षम करने के लिए VSS के साथ जुड़ने की आवश्यकता है।
बाइट लिखें कार्यक्षमता नीचे छवि में दिखाया गया है-
पूर्ण लेखन चक्र एक शुरुआत बिट के साथ होता है। उसके बाद, नियंत्रण बाइट प्रस्तुत करने की आवश्यकता है। नियंत्रण बाइट में, निम्नलिखित बातों की आवश्यकता होती है-
प्रारंभ बिट के बाद, दास पते से मिलकर। 1010 स्टेटिक है और A0, A1 और A2 हार्डवेयर कनेक्शन आधारित एड्रेस है। यदि तीन पिन जीएनडी या वीएसएस आपूर्ति के साथ जुड़े हुए हैं, तो इसे 0. के रूप में पढ़ा जाएगा। अन्यथा, यदि वीसीसी से जुड़ा हुआ है, तो इसे 1 के रूप में पढ़ा जाएगा। हमारे मामले में, सभी A0, A1 और A2 VSS के साथ जुड़े हुए हैं। इस प्रकार ये सभी 0 होंगे।
पढ़ने या लिखने की स्थिति पर खर्च करना। रीड या राइट बिट के साथ पते का मूल्य होगा - लिखने के लिए 0xA0 और पढ़ने के लिए 0xA1। इसके बाद Acknowledge bit है और उसके बाद, एक 8-बिट एड्रेस प्रेषित किया जाएगा जहाँ डेटा को संग्रहीत करने की आवश्यकता होती है और अंत में, संबंधित स्थान पर संग्रहीत डेटा होगा। ये कार्य मुख्य फ़ंक्शन में चरणबद्ध तरीके से किए जाते हैं।
मुख्य समारोह और जबकि लूप:
शून्य मुख्य (शून्य) {char c = 0x00; आरम्भिक UART0_Timer3 (115200); टीआई = 1; // महत्वपूर्ण, उपयोग प्रधान फ़ंक्शन को TI = 1 सेट करना चाहिए; I2C_init (); जबकि (1) {EEPROM_write (1,0x55); c = EEPROM_read (1); printf ("\ n मान पढ़ा गया% x है", c & 0xff); }; }
मुख्य कार्य सरल है, यह पता 1 में EEPROM को लगातार मान लिख रहा है और डेटा पढ़ रहा है। फिर प्रिंटफ फ़ंक्शन का उपयोग करके डेटा प्रिंट किया जा रहा है। Printf मान को हेक्स में प्रिंट कर रहा है।
EEPROM लेखन फ़ंक्शन में EEPROM अनुभाग में वर्णित निम्नलिखित बातें हैं-
शून्य EEPROM_write (अहस्ताक्षरित चार पता, अहस्ताक्षरित चार मूल्य) {I2C_start (); I2C_write (0xA0); I2C_write (पता); I2C_write (मूल्य); I2C_stop (); }
I2C के आरंभ समारोह में निम्नलिखित बातें शामिल हैं-
void I2C_start (शून्य) {हस्ताक्षरित int time = timeout; set_STA; clr_SI; जबकि (एसआई == 0) && (समय> 0)) {समय--; }; }
इस फ़ंक्शन में, पूर्वनिर्धारित समयबाह्य अवधि (I2C.h में परिभाषित किया गया है जहाँ पूर्वनिर्धारित समय 1000 के रूप में सेट किया गया है) के साथ एसआई स्थिति की जाँच की जा रही है। स्टार्ट फ़ंक्शन STA सेट करने और SI को क्लियर करने के साथ शुरू होता है।
void I2C_stop (शून्य) {हस्ताक्षरित int time = timeout; clr_SI; set_STO; जबकि (STO == 1) && (समय> 0)) {time--; }; }
स्टार्ट के रूप में ही, स्टॉप फंक्शन का उपयोग किया जाता है। बंद समारोह STO एसआई समाशोधन के बाद की स्थापना से शुरू होती है। नीचे समारोह I2C पढ़ा समारोह है-
अहस्ताक्षरित चार I2C_read (अहस्ताक्षरित चार ack_mode) {हस्ताक्षरित int time = timeout; अहस्ताक्षरित चार मूल्य = 0x00; set_AA; clr_SI; जबकि (एसआई == 0) && (टी> 0)) {समय--; }; मूल्य = I2DAT; if (ack_mode == I2C_NACK) {t = timeout_count; clr_AA; clr_SI; जबकि (एसआई == 0) && (टी> 0)) {समय--; }; } प्रतिलाभ की मात्रा; }
Ack_mode और I2C_NACK , दोनों I2C हेडर फाइल में 0 और 1 क्रमशः के रूप में परिभाषित कर रहे हैं।
इसी तरह, लेखन समारोह बनाया जाता है-
शून्य I2C_write (अहस्ताक्षरित चार मूल्य) {हस्ताक्षरित इंट टाइम = टाइमआउट; I2DAT = मूल्य; clr_STA; clr_SI; जबकि (एसआई == 0) && (समय> 0)) {समय--; }; }
कोड और आउटपुट चमकती
कोड 0 चेतावनी और 0 त्रुटियां लौटाता है और Keil द्वारा डिफ़ॉल्ट चमकती विधि का उपयोग करके फ्लैश किया गया था। यदि आप नए हैं, तो कोड को अपलोड करने के तरीके को समझने के लिए nuvoton ट्यूटोरियल के साथ शुरुआत करना देखें। कोड की संकलित जानकारी नीचे पाई जा सकती है।
I2C_EEPROM.cn संकलन… I2C_EEPROM.c… संकलन I2C.c… लिंकिंग… प्रोग्राम का आकार: डेटा = 59.2 xdata = 0 कोड = 2409 "से हेक्स फ़ाइल बना रहा है। । \ आउटपुट \ I2C_EEPROM "- 0 त्रुटि (ओं), 0 चेतावनी (ओं)। बिल्ड टाइम बीता हुआ समय: 00:00:04 बैच-बिल्ड सारांश: 1 सफल, 0 विफल, 0 स्किप किया गया - समय समाप्त: 00:00:04
हार्डवेयर एक ब्रेडबोर्ड पर स्थापित किया जा रहा है और उम्मीद के मुताबिक काम कर रहा है। जैसा कि आप नीचे दी गई छवि में देख सकते हैं, हम EEPROM पर एक मान लिखने में सक्षम थे और इसे मेमोरी से वापस पढ़ें और इसे सीरियल मॉनिटर पर प्रदर्शित करें।
इस कोड के लिए बोर्ड कैसे काम करता है, इसके पूर्ण प्रदर्शन के लिए नीचे दिए गए वीडियो को देखें। आशा है कि आपने ट्यूटोरियल का आनंद लिया है और कुछ उपयोगी सीखा है यदि आपके कोई प्रश्न हैं, तो उन्हें नीचे टिप्पणी अनुभाग में छोड़ दें। अन्य तकनीकी प्रश्नों को पोस्ट करने के लिए आप हमारे मंचों का भी उपयोग कर सकते हैं।