Turinys:
- 1 žingsnis: pertraukite tvarkyklę
- 2 veiksmas: nustatykite periodinį laiko intervalą
- 3 žingsnis: nutraukite inicializavimą
- 4 veiksmas: kur pridėti kodą
Video: „Arduino“- periodinis pertraukimas: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Ši instrukcija skirta naudoti periodinį pertraukimą laiko nustatymui „Arduino“programose. Tai žingsnis pradedančiam „Arduino“programuotojui, žinančiam, kad „Arduino“gali padaryti daugiau, tačiau nežino, kaip tai padaryti.
Jei yra našumo problema, darau prielaidą, kad naudojate vieną ar daugiau uždelsimo () funkcijų. Triukas yra atsikratyti uždelsimo () funkcijos (-ų) ir pakeisti pertrauką. Funkcija „delay“() priverčia „Arduino“nieko nelaukti, kol baigsis uždelsimas (). Naudojant pertrauką, jūsų programa gali daryti kitus dalykus, laukdama vėlavimo pabaigos. Paprastai yra didžiulis nepanaudotas negyvas laikas, kurį galima panaudoti kitiems dalykams naudojant uždelsimą (). Pertraukos naudojimas išsprendžia šią problemą.
1 žingsnis: pertraukite tvarkyklę
1. Pridėkite pertraukimo tvarkyklę prie savo programos. Tiesiog nukopijuokite ir įklijuokite kažkur aukščiau sąrankos ();
const unsigned long TIMER0_COUNT = 500; // 500 ms laikmačio intervalas
// TIMER0 pertraukimo tvarkytojas nepastovus bool laikas = false; ISR (TIMER0_COMPA_vect) {static unsigned long count = 0; if (++ skaičius> TIMER0_COUNT) {skaičius = 0; laikas = tiesa; // laikas nustatytas kaip tiesa kas TIMER0_COUNT ms} // (laiką reikia išvalyti pagrindinėje programoje)}
2 veiksmas: nustatykite periodinį laiko intervalą
2. Nustatykite laiko intervalą. Ši rutina grįžta į TIMER0 pertrauką, kuri įjungiama kas ~ 1 ms.
Jūsų „intervalas“yra apdorojamų TIMER0 pertraukų skaičius. Kiekvienas intervalas yra ~ 1 ms, taigi jūs tikrai nustatote, kiek TIMER0 pertraukų reikia skaičiuoti prieš suaktyvinant intervalą. IOW, nustatykite kintamąjį TIMER0_COUNT tiek, kiek norite palaukti. Pavyzdžiui, pusę sekundės naudokite 500. 3 sekundes naudokite 3000.
3 žingsnis: nutraukite inicializavimą
3. Pridėkite „TIMER0 inicializavimo“kodą prie savo sąrankos () metodo. Vėlgi, tiesiog nukopijuokite ir įklijuokite sąrankoje ().
// *** TIMER0 inicijavimas ***
cli (); // išjungti visus pertraukimus TIMSK0 = 0; // išjungti laikmatį0 žemesniam virpėjimui OCR0A = 0xBB; // savavališkas pertraukimų skaičius TIMSK0 | = _BV (OCIE0A); // piggy back to interrupt sei (); // vėl įjungia pertraukas
4 veiksmas: kur pridėti kodą
4. Pridėkite „laiko patikrinimo“kodą prie savo ciklo () metodo. Nukopijuokite ir įklijuokite į kilpą ().
jei (laikas) {
laikas = klaidingas; // daryk ką nors čia}
„Laikas = klaidingas“; eilutė yra svarbi. Be šios eilutės eilutė „daryk ką nors čia“būtų vykdoma kiekvieną kartą, kai programa vykdo ciklą ().
Žinoma, jūs pakeisite savo veiklą eilutėje „daryk ką nors čia“. Pradėkite nuo teksto spausdinimo arba šviesos diodo mirksėjimo.
Jūs baigėte!
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
IOT123 - ĮKROVIMO DAKTARO PERTRAUKIMAS: 3 žingsniai
IOT123 - ĮKROVIMO DOKTORIAUS PERTRAUKIMAS: derindamas SOLAR TRACKER CONTROLLER 0.4 versiją, daug laiko praleidau prijungdamas daugiametrą prie skirtingų NPN jungiklių grandinių. Kelių metrų matuoklis neturėjo tinkamų jungčių su duona. Aš pažvelgiau į kelis MCU pagrįstus monitorius, įskaitant
Pigiausias „Arduino“-- Mažiausias „Arduino“-- „Arduino Pro Mini“-- Programavimas -- „Arduino Neno“: 6 žingsniai (su nuotraukomis)
Pigiausias „Arduino“|| Mažiausias „Arduino“|| „Arduino Pro Mini“|| Programavimas || Arduino Neno: …………………………. Prenumeruokite mano „YouTube“kanalą, kad gautumėte daugiau vaizdo įrašų ……. .Šis projektas yra apie tai, kaip sujungti mažiausią ir pigiausią arduino. Mažiausias ir pigiausias arduino yra arduino pro mini. Tai panašu į arduino