Satura rādītājs:
- 1. darbība: pārtrauciet apstrādātāju
- 2. darbība: iestatiet periodisko laika intervālu
- 3. darbība. Pārtraukt inicializāciju
- 4. darbība: kur pievienot kodu
Video: Arduino - periodisks pārtraukums: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šī pamācība attiecas uz periodiska pārtraukuma izmantošanu laika noteikšanai Arduino programmās. Tas ir solis topošajam Arduino programmētājam, kurš zina, ka Arduino var darīt vairāk, bet nezina, kā to panākt.
Ja ir veiktspējas problēma, es pieņemu, ka izmantojat vienu vai vairākas delay () funkcijas. Viltība ir atbrīvoties no aizkavēšanās () funkcijas (-ēm) un aizstāt pārtraukumu. Funkcija delay () liek Arduino neko nedarīt, gaidot kavēšanās () pabeigšanu. Pārtraukuma izmantošana ļauj jūsu programmai veikt citas darbības, gaidot kavēšanās beigas. Parasti, izmantojot aizkavi (), ir milzīgs neizmantots miris laiks, ko varētu izmantot citām lietām. Pārtraukuma izmantošana atrisina šo problēmu.
1. darbība: pārtrauciet apstrādātāju
1. Pievienojiet savai programmai pārtraukumu apstrādātāju. Vienkārši nokopējiet un ielīmējiet kaut kur virs iestatīšanas ();
const unsigned long TIMER0_COUNT = 500; // 500 ms taimera intervāls
// TIMER0 pārtraukšanas apstrādātājs gaistošais bool laiks = nepatiess; ISR (TIMER0_COMPA_vect) {static unsigned long count = 0; ja (++ skaits> TIMER0_COUNT) {skaits = 0; laiks = taisnība; // laiks tiek iestatīts uz patiesu ik pēc TIMER0_COUNT ms} // (laiks jātīra galvenajā režīmā)}
2. darbība: iestatiet periodisko laika intervālu
2. Iestatiet laika intervālu. Šī parastā cūciņa atgriežas TIMER0 pārtraukumā, kas tiek aktivizēts ik pēc ~ 1 ms.
Jūsu “intervāls” ir apstrādājamo TIMER0 pārtraukumu skaits. Katrs intervāls ir ~ 1 ms, tāpēc jūs patiešām iestatāt, cik TIMER0 pārtraukumu jāskaita pirms intervāla aktivizēšanas. IOW, iestatiet mainīgo TIMER0_COUNT uz tik daudzām milisekundēm, kādas vēlaties gaidīt. Piemēram, vienu sekundi izmantojiet 500. Izmantojiet 3000 3 sekundes.
3. darbība. Pārtraukt inicializāciju
3. Pievienojiet iestatīšanas () metodei kodu "TIMER0 inicializācija". Atkal, vienkārši nokopējiet un ielīmējiet iestatījumos ().
// *** TIMER0 inicializēšana ***
cli (); // izslēgt visus pārtraukumus TIMSK0 = 0; // izslēgt taimeri0 zemākam nervozētājam OCR0A = 0xBB; // patvaļīgs pārtraukumu skaits TIMSK0 | = _BV (OCIE0A); // cūciņa atpakaļ uz pārtraukuma sei (); // ieslēgt pārtraukumus atpakaļ
4. darbība: kur pievienot kodu
4. Pievienojiet "laika pārbaudes" kodu savai cilpas () metodei. Kopējiet un ielīmējiet cilpā ().
ja (laiks) {
laiks = nepatiess; // dari kaut ko šeit}
"Laiks = nepatiess;" līnija ir svarīga. Bez šīs rindas rindiņa "kaut ko darīt šeit" tiktu izpildīta katru reizi, kad programma izpilda cilpu ().
Protams, jūs aizstājat savas darbības rindā "dari kaut ko šeit". Sāciet ar teksta drukāšanu vai gaismas diodes mirgošanu.
Jūs esat pabeidzis!
Ieteicams:
Maiņstrāvas padeves pārtraukums, ar akumulatoru nodrošināta LED ceļa gaisma: 8 soļi
Maiņstrāvas padeves pārtraukums, ar baterijām nodrošināta LED ceļa gaisma: nesenas elektroenerģijas padeves pārtraukuma laikā mana pagraba tumšākajos dziļumos … gaisma patiešām būtu bijusi ļoti ērta. Diemžēl mans lukturītis atradās dažu tumšu istabu attālumā. Nedaudz pakustējos, atradu gaismu un devos uz ģimenes istabu. Mans wi
Deju pārtraukums klasē: 8 soļi
Deju pārtraukums klasē: Vai jūsu klasei ir nepieciešams smadzeņu pārtraukums, un GoNoodle uzvilkšana prasa daudz laika? Vai vēlaties sveikt savus audzēkņus pie durvīm, bet COVID-19 dēļ rokasspiediena, apskāvienu un piecnieku dēļ nav jautājumu? Tad šeit ir jūsu risinājums! Studenti izvēlas
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): 8 soļi
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): ultraskaņas skaņas pārveidotāji L298N līdzstrāvas adaptera strāvas padeve ar vīriešu līdzstrāvas tapu Arduino UNOBreadboard un analogie porti koda konvertēšanai (C ++)
IOT123 - LĀDĒTĀJA DOKTORA PĀRTRAUKUMS: 3 soļi
IOT123 - LĀDĪTĀJA ĀRTA PĀRTRAUKŠANA: Kamēr atkļūdojat SOLAR TRACKER CONTROLLER versiju 0.4, es pavadīju daudz laika, savienojot multimetru ar dažādām NPN slēdžu shēmām. Multimetram nebija maizes dēļa draudzīgu savienojumu. Es apskatīju dažus uz MCU balstītus monitorus, tostarp
Austiņu pārtraukums platformā: 4 soļi
Austiņu pārtraukums platformā: Daudzi cilvēki zvēr, ielaužot austiņas- es esmu daļēji pārliecināts, ka mans pašreizējais pāris izklausās tikpat labi kā runātāja pienākums. Tas neļaus satriecošam pārim izklausīties labāk, bet tas var likt labam pārim izklausīties labāk vai palīdzēt izcelties