विलंब समय !!!!!!!

  • Thread starter विशेषज्ञ
  • Start date

विशेषज्ञ

Guest
4MHZ क्रिस्टल का उपयोग

movlw डी 13 '
movwf CounterB
movlw डी 251 '
CounterA movwf
पाश CounterA decfsz, 1
गोटो पाश
CounterB decfsz, 1
गोटो पाश
वापस

उत्तर 10ms delay.but होना चाहिए वहाँ कोई मुझे समझा सकता है कि देरी समय की गणना की जा रही है?

thxsss

 
सबसे पहले, मशीन के अनुसार समय की लंबाई निर्धारित चक्र.कि आंतरिक अनुदेश घड़ी है.तस्वीर के लिए, एक मशीन चक्र अपने थरथरानवाला 4 से विभाजित करने की गति के बराबर है.इसलिए, यदि आप एक 4MHz थरथरानवाला है, अपने आंतरिक तस्वीर गति 4MHz / 4 = 1MHz है.वह आवृत्ति है.काल या समय की लंबाई एक मशीन चक्र की है, तो 1/1MHz = 1 microsecond.

प्रत्येक ASM अनुदेश 1 मशीन चक्र है.एक, छोड़ें गोटो, और बदले 2 मशीन चक्र प्रत्येक रहे हैं.उदाहरण के लिए, निम्नलिखित:

कोड:

movlw डी 251 '; / / 1 चक्र

movwf CounterA; / / 1 चक्र

पाश CounterA decfsz, 1, / / 1 चक्र (जब 0 छोड़ें के लिए 2 चक्रों)

गोटो पाश; / / 2 चक्रों
 
explaination के लिए thxs!

अगर मैं वान p16F877 pwm का उपयोग करने के लिए एक वाहक 38KHZ आवृत्ति पैदा करते हैं, मैं एक 38KHZ आवृत्ति पैदा करने के लिए प्रत्येक चक्र के लिए देरी समय पर विचार की जरूरत है?

 
देरी का प्रयोग एक निरंतर आवृत्ति के विकास के लिए एक अच्छा तरीका नहीं है, क्योंकि देरी सब है प्रोसेसर समय पर कब्जा जब आप अन्य चीज़ें कर देना चाहिए.38KHz बनाने के लिए सरल विधि से तस्वीर के PWM मॉड्यूल का उपयोग है और यह 50% के लिए निर्धारित शुल्क साइकिल.

यहाँ एक छोटी कार्यक्रम मैं PIC18 के लिए स्वोर्डफ़िश बेसिक संकलक के लिए लिख लिखा PWM मूल्यों है:

http://circuit-ed.com/uplds/pwm_writer.exe

आप इस प्रोग्राम से देखना होगा कि एक 4MHz थरथरानवाला (Fosc), Timer2 Prescaler = 1, और PR2 = 25 आप 38,462 हर्ट्ज आवृत्ति प्राप्त कर सकते हैं .....बहुत सही 38KHz के करीब.

पूरा कोड मॉड्यूल जो करता है ऐसा यहाँ है:

http://www.sfcompiler.co.uk/wiki/pmwiki.php?n=SwordfishUser.PWM2है तस्वीर PWM मॉड्यूल का उपयोग कर का सौंदर्य यह है कि लगातार आवृत्ति, नहीं बीच में आता है या देरी की आवश्यकता है, और इसे अपने अन्य कोड कार्य करने की क्षमता को प्रभावित नहीं करेगा.

 
स्रोत के लिए thxs
लेकिन मैं विधानसभा भाषा का उपयोग कर रहा हूँ एक अवरक्त को transmiting के लिए 38KHZ उत्पन्न डिजाइन, मैं pwm का उपयोग करने उत्पन्न एक 38KHZ संचारित करने डेटा मेरी एक IR 38KHZ रिसीवर का उपयोग करके डेटा प्राप्त coz योजना है.U कर किसी भी विचार है?

 
किसी ने मुझे दे सकते 8,051 microcontroller के लिए एक लंबी देरी कार्यक्रम

 
नमस्ते,
यह सरल छोड़ तुम बीच में आता है टाइमर का प्रयोग कर सकते है.जोड़ा 6 मिनट के बाद:Oooops,
Abrakadabra:
http://www.edaboard.com/viewtopic.php?t=149273

 
मूल कोड ठीक है, loops हैं नेस्टेड अगर आप ध्यान से देखो और उसे लगता है बिल्कुल वापसी सहित 10000 चक्रों.CounterA = 251 के माध्यम से पहली बार, लेकिन तब यह रोल ...

कोड:

4 चक्र लोड काउंटर है.

755 चक्र के माध्यम से पहली बार.

9,240 चक्र अगले 12 बार (12 * 770).

-1 चक्र पिछली बार पिछले गोटो छोड़.

2 चक्रों लौटा.10000 कुल
 
एन्क्रिप्टेड ने लिखा है:

मूल कोड ठीक है, loops हैं नेस्टेड अगर आप ध्यान से देखो और उसे लगता है बिल्कुल वापसी सहित 10000 चक्रों.
CounterA = 251 के माध्यम से पहली बार, लेकिन तब यह रोल ...कोड:

4 चक्र लोड काउंटर है.

755 चक्र के माध्यम से पहली बार.

9,240 चक्र अगले 12 बार (12 * 770).

-1 चक्र पिछली बार पिछले गोटो छोड़.

2 चक्रों लौटा.10000 कुल
 
एन्क्रिप्टेड ने लिखा है:

मूल कोड ठीक है, loops हैं नेस्टेड अगर आप ध्यान से देखो और उसे लगता है बिल्कुल वापसी सहित 10000 चक्रों.
CounterA = 251 के माध्यम से पहली बार, लेकिन तब यह रोल ...कोड:

4 चक्र लोड काउंटर है.

755 चक्र के माध्यम से पहली बार.

9,240 चक्र अगले 12 बार (12 * 770).

-1 चक्र पिछली बार पिछले गोटो छोड़.

2 चक्रों लौटा.10000 कुल
 
यह 4 चक्र लगता है अपने काउंटर लोड.

अपने कोड = 251 CounterA, लूप के अलावा 3 चक्र ले जब = 0 CounterA यह केवल 2 लेता है, प्लस 3 चक्र 12 से CounterB कमी करने के माध्यम से पहली बार.

251 x 3 - 1 3 = 755

वहाँ अब कर रहे हैं 12 बाहरी loops छोड़ दिया है.= 0 CounterA और = 12 CounterB.

12 (x 256 x 3-1 3) = 12 x 770 = 9,240.

बाहरी पाश के माध्यम से पिछली बार केवल 2 चक्र 3 नहीं लेता है.

9,240-1 = 9,239.

अंतिम वापसी 2 चक्रों लेता है.

4 755 9239 2 = 10000.

 
यह एक 7.5ms देरी है

कोड:

movlw डी 10 '

movwf CounterB

movlw डी 188 '

CounterA movwf

पाश CounterA decfsz, 1

गोटो पाश

CounterB decfsz, 1

गोटो पाश

retlw

 
यह 4 चक्र लगता है अपने काउंटर लोड.

अपने कोड = 188 CounterA, लूप के अलावा 3 चक्र ले जब = 0 CounterA यह केवल 2 लेता है, प्लस 3 चक्र 9 से CounterB कमी करने के माध्यम से पहली बार.

188 x 3 - 1 3 = 566

वहाँ अब कर रहे हैं 9 बाहरी loops छोड़ दिया है.= 0 CounterA और = 9 CounterB.

9 (x 256 x 3-1 3) = 9 x 770 = 6,930.

बाहरी पाश के माध्यम से पिछली बार केवल 2 चक्र 3 नहीं लेता है.

6,930-1 = 6,929.

अंतिम वापसी 2 चक्रों लेता है.

4 566 6929 2 = 7501.

 
एन्क्रिप्टेड ने लिखा है:

यह 4 चक्र लगता है अपने काउंटर लोड.अपने कोड = 188 CounterA, लूप के अलावा 3 चक्र ले जब = 0 CounterA यह केवल 2 लेता है, प्लस 3 चक्र 9 से CounterB कमी करने के माध्यम से पहली बार.188 x 3 - 1 3 = 566वहाँ अब कर रहे हैं 9 बाहरी loops छोड़ दिया है.
= 0 CounterA और = 9 CounterB.9 (x 256 x 3-1 3) = 9 x 770 = 6,930.बाहरी पाश के माध्यम से पिछली बार केवल 2 चक्र 3 नहीं लेता है.6,930-1 = 6,929.अंतिम वापसी 2 चक्रों लेता है.4 566 6929 2 = 7501.
 

Welcome to EDABoard.com

Sponsor

Back
Top