मैं कैसे IR RC5 संचालित का उपयोग AVR रुकावट के साथ श&#236

  • Thread starter टर्मिनेटर विद्युत
  • Start date

टर्मिनेटर विद्युत

Guest
हाय,,,
मैं सफलतापूर्वक IR RC5 कोड के स्वागत के लिए एसी कोड बनाया है avr आवेदन की मदद से ATmega16 नोटों का उपयोग

लेकिन मैं नहीं जानता कैसे या लिखने के लिए कैसे लिखने के लिए एक बाधा RC5 IR recever संचालित शुरू करने के लिए

मैं codevision का उपयोग कर रहा हूँ, plz किसी ने मुझे कैसे शुरू करने के लिए मदद कर सकता है?cuz मैं पूरी तरह यहाँ खो गया था, कोई संदर्भ cuz कि विषय पर पाया

धन्यवाद

 
Jednymi z pierwszych procesorów Broadwell jakie trafią na rynek będą układy z serii Core M, dedykowane do stosowania w tabletach. Procesory mają wypełnić lukę między niezbyt wydajnymi układami z serii Atom, a pełnoprawnymi chipami z serii Core. Dzięki produkcji w najnowszym 14-nanometrowym procesie układy mają zaoferować wysoką wydajność, a jednoc...

Read more...
 
इस IR RC5 रिसीवर के लिए अपने कोड है एक ATmega16 का उपयोग

कोड:

कोड:

/************************************************* ****
चिप के प्रकार: ATmega16L

कार्यक्रम के प्रकार: अनुप्रयोग

घड़ी की आवृत्ति: 7.372800 मेगाहर्टज

स्मृति मॉडल: लघु

विदेश SRAM आकार: 0

डेटा ढेर आकार: 256

************************************************** *** /शून्य setup_AVR ();

# CHECKBIT (पता, बिट) पते (परिभाषित और (<1 <बिट))

# शामिल <mega16.h>

# शामिल <stdio.h>

# शामिल <io.h>

अहस्ताक्षरित चार अस्थायी = 0;

अहस्ताक्षरित चार कमान [10] = (0);

अहस्ताक्षरित वर्ण व्यवस्था [10] = (0);

अहस्ताक्षरित = 0 timerH चार;

अहस्ताक्षरित चार timerL = 0;

int bitcnt; / इंतज़ार कर बिट्स की संख्या / प्राप्त हो

अहस्ताक्षरित ref1 चार; / / 3 / 4 bit_time

अहस्ताक्षरित ref2 चार; / / 5 / 4 bit_time

int i = 6;

int j = 5;

int k;अंतरायन [TIM0_OVF] शून्य timer0_ovf_isr शून्य ()

(

timerL ; / / वेतन वृद्धि हर 255 * 1/7.372800 सेकंड

अस्थायी ;

अगर (अस्थायी == 255) (= 0 अस्थायी; timerH ;) / / हर 255 वेतन वृद्धि * 255 सेकंड * 1/7.372800

)शून्य मुख्य शून्य ()

(

setup_AVR(); asm # एसईआई ( "")समय (1)

(हस्ताक्षर: अस्थायी = 0;

= 0 timerH;detect1: timerL = 0;detect2: अगर (timerH 15>) / / यदि कोई शुरू थोड़ी 132ms भीतर का पता चला

गोटो दोष;अगर (timerL> 102) / / यदि रेखा से अधिक 3.5ms के लिए उच्च

start1 गोटो; / / तो पहले शुरू बिट के लिए इंतजार करनाअगर (! CHECKBIT (PIND, 2)) / / यदि पंक्ति है:

detect1 गोटो; / / PIND 0 कम - कूद = को detect1 और टाइमर रीसेट

और गोटो detect2; / / 1 उच्च - कूद = को detect2 PIND और पुनः जाँच करें उच्च आदर्श के 3.5 एमएस के लिएstart1: पहले शुरू थोड़ी देर के लिए CHECKBIT ((, 2 PIND)) / रखना / जाँच

(

अगर (timerH 15>) / / यदि कोई शुरू थोड़ी 132ms भीतर का पता चला

गोटो गलती; / / तो बाहर निकलें printf ( "5");

)timerL = 0; / / उपाय शुरू बिट के halflengthstart2: जबकि (! CHECKBIT (PIND, 2)) / / उपाय शुरू बिट (कम स्तर की लंबाई के halflength)

(

अगर (timerL> 26) / / यदि startbit से अधिक 1.1ms,

गोटो गलती; / / बाहर निकलें

)

/ / timerL बिट = 1 / 2 बार

ref1 = * timerL/2.0 3.0; / / ref1 = 3 / 4 थोड़ा समय

ref2 = * ref1/3.0 5.0; / / ref2 = 5 / 4 थोड़ा समय

timerL = 0;start3: समय CHECKBIT ((PIND, 2)) / दूसरा शुरू थोड़ी प्राप्त है अगर जांच /

(

अगर (timerL> ref1) / / यदि बढ़ती बढ़त बहुत लंबा है

गोटो गलती; / / बाहर निकलें

)= 12 bitcnt; / / 12 बिट्स प्राप्त करें

5 = j; / / कमांड के लिए

5 = i; / / प्रणाली के लिए

नमूना timerL = 0:;

जबकि (timerL <ref1); / / जब तक पहले 1 इंतज़ार / अगले बिट के 4जबकि (bitcnt> 0)(

/ / अब टॉगल थोड़ा सहित पहले 7 बिट्स प्राप्त

जबकि (bitcnt> 6)

(अगर (PIND.2 == 0) (/ / सा 0 प्राप्त होता है

प्रणाली मैं [= 0]; / / स्टोर प्रणाली में थोड़ा सा

मैं bitcnt -; -; / / अगले बिट के लिए तैयार

जबकि (! CHECKBIT (PIND, 2)) / / अगले छोर तक इंतजार

(

अगर (timerL> ref2) गोटो दोष;

)

गोटो नमूना; / / अगले थोड़ा इंतज़ार

)और (/ / थोड़ा प्राप्त है 1

प्रणाली मैं [= 1]; / / स्टोर प्रणाली में थोड़ा सा

मैं bitcnt -; -; / / अगले बिट के लिए तैयार

जबकि CHECKBIT ((, 2 PIND)) / / अगले छोर तक इंतजार

(

अगर (timerL> ref2) गोटो दोष;

)

गोटो नमूना; / / अगले थोड़ा इंतज़ार

)

)

/ / अब पिछले 6 बिट्स प्राप्तअगर (PIND.2 == 0) (/ / सा 0 प्राप्त होता है

कमांड जम्मू [= 0]; / / स्टोर कमान में थोड़ा सा

-; bitcnt - जम्मू, / / अगले बिट के लिए तैयार

जबकि (! CHECKBIT (PIND, 2)) / / अगले छोर तक इंतजार

(

अगर (timerL> ref2) गोटो दोष;

)

गोटो नमूना; / / अगले थोड़ा इंतज़ार

)और (/ / थोड़ा प्राप्त है 1

कमांड जम्मू [= 1]; / / स्टोर कमान में थोड़ा सा

-; bitcnt - जम्मू, / / अगले बिट के लिए तैयार

जबकि CHECKBIT ((, 2 PIND)) / / अगले छोर तक इंतजार

(

अगर (timerL> ref2) गोटो दोष;

)

गोटो नमूना; / / अगले थोड़ा इंतज़ार

)

)

printf ( "आ");

कश्मीर (के लिए = 5; k> = 0; k -)

printf ( "% d", कमांड [k]);

printf ( "बी बी");

कश्मीर (के लिए = 5; k> = 0; k -)

printf ( "% d", प्रणाली [k]);गलती: गोटो हस्ताक्षर करना;);

)

शून्य setup_AVR ()

(

0x00 = PORTD;

0x00 = DDRD;

0x01 = TCCR0;

0x00 = TCNT0;

0x00 = OCR0;

0x01 = TIMSK;

0x80 = ACSR;

0x00 = SFIOR;

)
 
http://www.wara.com/modules.php?name=News&file=article&sid=610

सोनी प्रोटोकॉल

 
इसे चीनी में ज्यादातर है, मैं समझ फ्लॉप

 
दो तरह से कर सकते है.
पहला:
का प्रयोग करें इनपुट पर कब्जा करने IR संकेत का पता लगाने के पिन, मुझे यकीन है कि नहीं हूँ, AVR पहले ही इस या नहीं प्रदान की सुविधा के लिए डेटा पत्रक पर जांच करने की कोशिश करो.

दूसरी:
इस्तेमाल की एक बाह्य एक टाइमर प्लस अंतरायन, टाइमर, जब एक IR बाह्य अंतरायन पिन आना संकेत गिनती शुरू करते हैं.

 
मुझे लगता है कि इनपुट पर कब्जा एक बहुत अच्छा तरीका है, किसी भी संसाधनों plz है?

 
kittythai ने लिखा है:

http://www.wara.com/modules.php?name=News&file=article&sid=610सोनी प्रोटोकॉल
 
टर्मिनेटर बिजली ने लिखा है:

मुझे लगता है कि इनपुट पर कब्जा एक बहुत अच्छा तरीका है, किसी भी संसाधनों plz है?
 

Welcome to EDABoard.com

Sponsor

Back
Top