टाइमर और बीच में आता है

I

impakt

Guest
मैं टाइमर कैसे समझ की तरह और काम interupts चाहते (MCU बात नहीं) है.मुझे पता है कि टाइमर रजिस्टर जिसका मूल्य हर बार एक अनुदेश मार डाला है incremented है.क्या होता है जब उसे यह अधिकतम मूल्य पहुंचता है?और जब एक interrput है तब होता है?के बाद क्या होता है?

 
जब एक टाइमर अपनी अधिकतम मूल्य तक पहुँच (है कि ffh है (8 के लिए 255d) बिट, ffffh 65535d (16 बिट टाइमर के लिए)) अतिप्रवाह होता है और इसे (00h) शुरू से ही शुरू होता है. अगर तुम अपने बीच में सक्षम है, यह बीच में कूदता है वेक्टर पता जब अतिप्रवाह occurs.By तरीका है कि आप विशिष्ट समय 'intervals.That में कुछ कोड चला सकते हैं बुनियादी विवरण के एस

 
coshkun ने लिखा है:

.By that way you can run some code at specific time intervals.
यदि आप अपने बीच में सक्षम है, तो वेक्टर पता बीच में जब अतिप्रवाह होता है कूदता है.
तरीका है कि आप विशिष्ट समय अंतराल पर कुछ कोड चला सकते हैं करके.
 
मैं जो भाषा use.In तुम विधानसभा (पूर्व नहीं पता: 8051), कार्यक्रम तुम्हें देख सकता है की शुरुआत में है कि लाइनों:
00h org
sjmp शुरू
0bh org
sjmp टाइमर

0bh है timer0 0bh पते पर वेक्टर timer0 overflows address.When, पीसी automaticly बीच में कूदता है और कार्यान्वित "sjmp टाइमर लाइन".
तुम बीच में आता है अध्ययन, पहले चाहिए.

 
हाय Impakt,
अगर मुझे सही याद है, तुम माइक्रो तस्वीर, हाँ प्रयोग करते हैं?यदि यह मामला है, तुम्हारे (12Fxx और 16Fxx उपकरणों) में वेक्टर बाधा है 0x04 है.18Fxxx एक से अधिक है, यह और कम है उच्च प्राथमिकता के बाद से बीच में आता है.(मैं 0x04 और 0x08 लगता है, लेकिन वह स्मृति से ही है, डेटा पत्रक बताना होगा ...)
फिर आप को, अपने हेन्डलर रुकावट के लिए कोड लिखें, और यह कि वेक्टर में जगह है.तुम भी करने में सक्षम interrups आप - अर्थात्: टाइमर अतिप्रवाह, पिन, serRx, TX, आदि और सक्षम परिवर्तन पर वैश्विक बीच में आता है का उपयोग करना चाहते हैं.आपके विशिष्ट भाग के लिए डेटा पत्रक तुम कैसे ऐसा करने पर जानकारी देंगे.
मैं भूल अगर तुम विधानसभा प्रयोग कर रहे हैं, या एक उच्च स्तर की भाषा.
उद्धरण:

तुम और अधिक विशिष्ट कृपया कर सकते हैं?
जब अंतरायन ट्रिगर करता है?
क्या है वेक्टर पता बीच में?
धन्यवाद!
 
मैं इस परियोजना के लिए सीसीएस सी का उपयोग कर रहा हूँ और मैं एक निर्माता के द्वारा दिए गए कोड के आधार पर एक छोटे रोबोट का एक कोड विकसित किया है.मैं ऐसा कुछ है:
कोड:/ / समयबद्धक के लिए टाइमर 0

setup_timer_0 (RTCC_DIV_4);

set_timer0 (0);

enable_interrupts (INT_TIMER0);

....

INT_TIMER0 #

शून्य Scheduler_Interrupt (शून्य) / / आंतरिक टास्क प्रबंधक, हर हमें 200 इंटरप्ट

(

....

)

 
impakt नमस्ते

अपने प्रश्न का उत्तर नहीं होने के लिए खेद है.
यही सवाल i'have, लेकिन MSP430 के लिए

कोड:

# pragma वेक्टर = PORT1_VECTOR / / PORT_1 इंटरप्ट सेवा नियमित ISR ()

__interrupt PORT1_ISR शून्य शून्य ()
 
हाय Impakt,

ठीक है, मैं कोशिश करूँगा और सब कुछ जवाब हूँ:
उद्धरण:

इस समारोह में शून्य Scheduler_Interrupt (शून्य) everytime टाइमर 0 overflows मार डाला होगा?

 
जैसा कि मैंने पहले कहा, रोबोट 8 अवरक्त सेंसरों: बाधा परिहार रेखा से निम्नलिखित के लिए और 2 के लिए 6 गया है.तुम http://www.k-team.com/kteam/index.php?site=1&rub=3&upPage=148&page=16&version=EN पर रोबोट देख सकते हैं.
मैं एल्गोरिथ्म समझ में नहीं आता.यहाँ कोड फार्म का एक क्षेत्र है:
कोड:

मामले FrontZone:

set_adc_channel (FrontLeft);

delay_us (12);

__IR_Light FrontLeft [] = read_adc ();

set_adc_channel (FrontRight);

delay_us (12);

__IR_Light FrontRight [] = read_adc ();

set_adc_channel (मोर्चा);

delay_us (12);

__IR_Light फ्रंट [] = read_adc ();

output_high (PIN_B2);

delay_us (300);

__IR_Proximity [मोर्चा] = __IR_Light [मोर्चा read_adc] - ();

set_adc_channel (FrontLeft);

delay_us (12);

__IR_Proximity [FrontLeft] = __IR_Light [FrontLeft read_adc] - ();

set_adc_channel (FrontRight);

delay_us (12);

__IR_Proximity [FrontRight] = __IR_Light [FrontRight read_adc] - ();

(PIN_B2) output_low;

तोड़;

 
नमस्ते,
FrontZone खैर इस तरह दिखता है एक स्विच बयान, सेंसर रीडिंग पर स्विच की तरह कुछ के बाहर है, और इस मामले में, ऐसा लगता है कि यह समारोह whichSensor (set_adc_channel फोन करके एक ई. रूपांतरण शुरू होता है)
जो उचित सेंसर का चयन करने पढ़ें.
यह तो सरणी __IR_Light में पढ़ने दुकानों [n] एक जादू के लिए देरी,
तो अगले सेंसर पढ़ता है.
यह सामने तीन सेंसर करता है, थोड़ी देर के लिए देरी (300, US) तो पिन उच्च B2 सेट.इस पिन पर क्या है?मुझे लग रहा है यह एक IR emitter है?यह तो पिछले __IR_Light में संग्रहीत [एक नई माप के साथ n], और भंडार सरणी __IR_Proximity में जिसके परिणामस्वरूप फर्क [n पढ़ने की तुलना]
तो यह अगले सेंसर करने के लिए एक और कदम की तुलना करें.

मुझे उम्मीद है कि इस तरह बना रहा है, यह बहुत देर हो चुकी है, और मैं सच में उसे बंद किया है.मैं वापस अधिक के साथ सुबह में आती हूँ.

ओह, मैं तुम्हें पृष्ठ की ओर इशारा किया, लेकिन मुझे यकीन नहीं कर रहा हूँ जो उत्पाद / स्रोत कोड के साथ आप काम कर रहे हैं पर एक नज़र लिया.मैं सोच रहा हूँ आप अपने स्रोत कोड यहाँ पर है?अगर ऐसा है, मैं इसे देख लूँगा.अगर मैं जो बीओटी जानता था, शायद वह समझा सकता है बेहतर.

सादर,
रॉबर्ट

 
है

एक वेक्टर एक पूर्व निर्धारित कार्यक्रम के स्मृति स्थान (सामान्य रूप से शुरू स्थान) जो चिप के निर्माता द्वारा निर्दिष्ट किया जाता है लेकिन कुछ भी नहीं है.जो प्रोग्रामर द्वारा बदल cannnot हो
पहला और सबसे महत्वपूर्ण रीसेट सदिश जहाँ प्रणाली पहले या पर reset.we स्विचन रखने के इस स्थान blank.next नहीं कर सकता के समय पढ़ा होगा interruprvector.the बीच में हैं कुछ purticular situation.when की प्रणाली को सूचित वहाँ है, लेकिन कुछ भी नहीं है कोई interrupt.the प्रणाली सामान्य आपरेशन करते हैं और जब एक अंतरायन होगा currusponding रीसेट वेक्टर के लिए सिस्टम controllwill कूदना होता है कि हम purticular interrupt.this कार्यक्रम के लिए समाधान जहाँ प्रोग्राम नाम सेवा नियमित (isr) बीच में है चाहिए. complition के बाद isr, प्रणाली पिछले जगह पर वापस जाओ और जारी रखने के क्या क्या कर रहा था

उम्मीद है कि इस उर doubts.if स्पष्ट नहीं फिर से मेल, हम यहाँ आर यू को मदद feelfree pls होगाआपको धन्यवादsunish

 
मैं इस लाइन समझ में नहीं आता:
कोड:

__IR_Proximity [मोर्चा] = __IR_Light [मोर्चा read_adc] - ();
 
नमस्ते,
उद्धरण:

कोडः

__IR_Proximity [मोर्चा] = __IR_Light [मोर्चा read_adc] - ();यदि __IR_Light [मोर्चा] एडीसी चैनल से मूल्य लाल है, read_adc () है कि, (शून्य) 0 सकता है नहीं परिणाम?
फिर नहीं होगा hyperterminal 0 होने पर मुद्रित मूल्य???

 

Welcome to EDABoard.com

Sponsor

Back
Top