Kazalo:
- 1. korak: Prekini upravljalnik
- 2. korak: Nastavite periodični časovni interval
- 3. korak: Prekinite inicializacijo
- 4. korak: Kam dodati kodo
Video: Arduino - periodični prekinitev: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta Instructable govori o uporabi periodičnih prekinitev za merjenje časa v programih Arduino. To je korak za nadobudnega programerja Arduina, ki ve, da lahko Arduino naredi več, vendar ne ve, kako to uresničiti.
Če obstaja težava pri delovanju, predvidevam, da uporabljate eno ali več funkcij delay (). Trik je v tem, da se znebite funkcij delay () in nadomestite prekinitev. Funkcija delay () prisili Arduino, da ne stori ničesar, medtem ko čaka na dokončanje delay (). Uporaba prekinitve omogoča, da vaš program počne druge stvari, medtem ko čaka na konec zamude. Običajno je ogromno neizkoriščenega mrtvega časa, ki bi ga lahko uporabili za druge stvari pri uporabi delay (). Uporaba prekinitve reši to težavo.
1. korak: Prekini upravljalnik
1. V program dodajte upravljalnik prekinitev. Samo kopirajte in prilepite nekam nad setup ();
const unsigned long TIMER0_COUNT = 500; // časovni interval 500 msec
// TIMER0 upravljalnik prekinitev hlapen bool čas = false; ISR (TIMER0_COMPA_vect) {statično nepodpisano dolgo število = 0; if (++ count> TIMER0_COUNT) {count = 0; čas = res; // čas je nastavljen na true vsakih TIMER0_COUNT ms} // (čas je treba počistiti v glavni rutini)}
2. korak: Nastavite periodični časovni interval
2. Nastavite časovni interval. Ta rutinski povratni udarec se vrne na prekinitev TIMER0, ki je nastavljena na sprožitev vsakih ~ 1 msec.
Vaš "interval" je število prekinitev TIMER0 za obdelavo. Vsak interval je ~ 1 msec, zato res nastavite, koliko prekinitev TIMER0 bo štelo, preden aktivirate interval. IOW, spremenljivko TIMER0_COUNT nastavite na koliko milisekund želite počakati. Na primer, za polovico sekunde uporabite 500. Uporabite 3000 za 3 sekunde.
3. korak: Prekinite inicializacijo
3. Metodi setup () dodajte kodo "TIMER0 initialization". Spet samo kopirajte in prilepite v setup ().
// *** TIMER0 inicializacija ***
cli (); // izklopi vse prekinitve TIMSK0 = 0; // izklopite timer0 za nižje tresenje OCR0A = 0xBB; // poljubno število prekinitev TIMSK0 | = _BV (OCIE0A); // nazaj na prekinitev sei (); // ponovno vklopi prekinitve
4. korak: Kam dodati kodo
4. Metodi zanke () dodajte kodo "preverjanje časa". Kopirajte in prilepite v zanko ().
if (čas) {
čas = napačno; // naredi nekaj tukaj}
"Čas = napačno;" linija je pomembna. Brez te vrstice bi se vrstice "naredi nekaj tukaj" izvedle vsakič, ko program izvede zanko ().
Seveda zamenjate svoje dejavnosti v vrstici »naredi nekaj tukaj«. Začnite s tiskanjem besedila ali utripanjem LED.
Končal si!
Priporočena:
555 Časovnik za oddajanje signala za prekinitev Atmega328: 7 korakov
555 Časovnik za oddajanje signala za prekinitev Atmega328: Glavni cilj tega vezja je prihraniti energijo. Torej, o arduinu ne bom govoril, ker ima sama plošča nepotrebne stroške energije za končni izdelek. Odlično je za razvoj. Ampak, ni zelo dobro za končne projekte, ki se izvajajo na batt
Alarmno vezje za prekinitev žice z MOSFET -om IRFZ44N: 11 korakov
Alarmno vezje prekinitve žice z MOSFET -om IRFZ44N: Danes v tem članku ponavadi merimo kvadrat, da bi razpravljali o prednostih alarmnega vezja prekinitve žice z MOSFET -om IRFZ44N. IRFZ44N je sodelavec v negi N-kanalnih sladil, MOSFET, ki bo prinesel visoko moč za naravne
Zasnova programabilnega krmilnika prekinitev v VHDL: 4 koraki
Oblikovanje programabilnega krmilnika prekinitev v VHDL: Presenečen sem nad vrstami odzivov, ki jih dobim v tem blogu. Hvala, fantje, ki ste obiskali moj blog in me spodbudili, da svoje znanje delim z vami. Tokrat bom predstavil zasnovo drugega zanimivega modula, ki ga vidimo v vseh SOC -jih - Interrupt C
Arduino senzor za blokiranje svetlobe (modul za prekinitev fotografij) - varovanje kartic na varnem (prototip): 4 koraki
Arduino senzor za blokiranje svetlobe (modul za prekinitev fotografij) - Varovanje vaših kartic na varnem (prototip): Ta projekt je prototip in v tem projektu bom razpravljal o tem, kako lahko hranite svoje kartice - kot so kreditne kartice, debetne kartice, darilne kartice - varno. Oglejte si zgornje slike, da vidite, kako ta projekt deluje. Dovolite mi, da si ogledam
Kako narediti samodejno prekinitev vezja: 9 korakov
Kako narediti samodejno prekinitev vezja: Hii prijatelj, Danes bom naredil vezje za samodejno prekinitev s tranzistorjem 2N2222A. To vezje je zelo preprosto. Začnimo