ዝርዝር ሁኔታ:

አርዱዲኖ - ወቅታዊ መቋረጥ - 4 ደረጃዎች
አርዱዲኖ - ወቅታዊ መቋረጥ - 4 ደረጃዎች

ቪዲዮ: አርዱዲኖ - ወቅታዊ መቋረጥ - 4 ደረጃዎች

ቪዲዮ: አርዱዲኖ - ወቅታዊ መቋረጥ - 4 ደረጃዎች
ቪዲዮ: RAMPS 1.6 - A4988/DRV8825 configuration 2024, ሀምሌ
Anonim
አርዱዲኖ - ወቅታዊ መቋረጥ
አርዱዲኖ - ወቅታዊ መቋረጥ

ይህ አስተማሪ በአርዱዲኖ ፕሮግራሞች ውስጥ የጊዜን መቋረጥን ስለመጠቀም ነው። ይህ አርዱዲኖ የበለጠ ማድረግ እንደሚችል ለሚያውቅ ለአዳጊው የአርዲኖ ፕሮግራም አዘጋጅ አንድ እርምጃ ነው ፣ ግን ያንን እንዴት ማድረግ እንደሚቻል አያውቅም።

የአፈጻጸም ችግር ካለ አንድ ወይም ከዚያ በላይ መዘግየት () ተግባሮችን እየተጠቀሙ ነው ብዬ እገምታለሁ። ዘዴው የዘገየውን () ተግባር (ቶች) ማስወገድ እና ማቋረጥን መተካት ነው። የመዘግየቱ () ተግባር አርዱዲኖ መዘግየቱን () እስኪጨርስ ድረስ ምንም እንዲያደርግ ያስገድደዋል። ማቋረጫ መጠቀም ፕሮግራሙ የመዘግየቱን መጨረሻ በሚጠብቅበት ጊዜ ሌሎች ነገሮችን እንዲያደርግ ያስችለዋል። መዘግየት () ሲጠቀሙ ለሌሎች ነገሮች ሊያገለግል የሚችል ብዙ ጊዜ ጥቅም ላይ ያልዋለ የሞተ ጊዜ አለ። ማቋረጫ መጠቀም ይህንን ችግር ይፈታል።

ደረጃ 1: አስተናጋጅ ተቆጣጣሪ

1. የተቋረጠውን ተቆጣጣሪ በፕሮግራምዎ ላይ ያክሉ። ከቅንብር () በላይ የሆነ ቦታ ብቻ ይቅዱ እና ይለጥፉ ፤

const ያልተፈረመ ረጅም TIMER0_COUNT = 500; // 500 msec የሰዓት ቆጣሪ ክፍተት

// TIMER0 አስተናጋጅ ተቆጣጣሪ የማይለዋወጥ bool ጊዜ = ሐሰት; ISR (TIMER0_COMPA_vect) {የማይለዋወጥ ረጅም ቆጠራ = 0; ከሆነ (++ ቆጠራ> TIMER0_COUNT) {count = 0; ጊዜ = እውነት; // ጊዜ በእያንዳንዱ TIMER0_COUNT ms} // (ጊዜ በዋናው አሠራር መጥረግ አለበት)}

ደረጃ 2 - ወቅታዊ የጊዜ ክፍተት ያዘጋጁ

2. የጊዜ ክፍተቱን ያዘጋጁ። ይህ ተለምዷዊ piggybackers እያንዳንዱን ~ 1 msec ለማቃጠል በተዘጋጀው በ TIMER0 መቋረጥ ላይ።

የእርስዎ “ክፍተት” ለማስኬድ የ TIMER0 ማቋረጦች ብዛት ነው። እያንዳንዱ ክፍተት ~ 1 msec ነው ፣ ስለዚህ የእርስዎን የጊዜ ክፍተት ከማግበርዎ በፊት ምን ያህል TIMER0 መቋረጦች እንደሚቆጥሩ በእርግጥ እያቀናበሩ ነው። IOW ፣ ተለዋዋጭውን TIMER0_COUNT ወደሚፈልጉት ብዙ ሚሊሰከንዶች ያቀናብሩ። ለምሳሌ ፣ ለአንድ ሰከንድ ግማሽ ያህል 500 ይጠቀሙ። ለ 3 ሰከንዶች 3000 ይጠቀሙ።

ደረጃ 3 መቋረጥን ማቋረጥ

3. የ "TIMER0 ማስጀመሪያ" ኮድን ወደ ማዋቀር () ዘዴዎ ያክሉ። እንደገና ፣ በማዋቀር () ውስጥ ብቻ ይቅዱ እና ይለጥፉ።

// *** TIMER0 ማስነሻ ***

ክሊ (); // ሁሉንም ማቋረጦች ያጥፉ TIMSK0 = 0; // ለዝቅተኛ ዥረት OCR0A = 0xBB ሰዓት ቆጣሪን ያጥፉ ፤ // የዘፈቀደ ማቋረጫ ብዛት TIMSK0 | = _BV (OCIE0A); // piggy back to interrupt sei (); // መዞር እንደገና ያቋርጣል

ደረጃ 4 ኮድዎን የት እንደሚጨምሩ

4. የ "የጊዜ ፍተሻ" ኮዱን ወደ loop () ዘዴዎ ያክሉ። በሉፕ () ውስጥ ይቅዱ እና ይለጥፉ።

ከሆነ (ጊዜ) {

ጊዜ = ሐሰት; // እዚህ አንድ ነገር ያድርጉ}

“ጊዜ = ሐሰት”; መስመር አስፈላጊ ነው። ያለዚህ መስመር ፕሮግራሙ loop () በሠራ ቁጥር “እዚህ አንድ ነገር ያድርጉ” የሚለው መስመር (ቹ) ይገደላል።

በእርግጥ የእራስዎን እንቅስቃሴዎች “እዚህ አንድ ነገር ያድርጉ” በሚለው መስመር ውስጥ ይተካሉ። የተወሰነ ጽሑፍ በማተም ወይም ኤልኢዲውን በማብራት ይጀምሩ።

ጨርሰዋል!

የሚመከር: