INHOUDSOPGAWE:
- Stap 1: Onderbreek hanteraar
- Stap 2: Stel periodieke tydsinterval in
- Stap 3: Onderbreek die inisialisering
- Stap 4: Waar om u kode by te voeg
Video: Arduino - Periodieke onderbreking: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hierdie instruksie handel oor die gebruik van 'n periodieke onderbreking vir tydsberekening in Arduino -programme. Dit is 'n stap vir 'n ontluikende Arduino -programmeerder wat weet dat die Arduino meer kan doen, maar nie heeltemal weet hoe om dit te laat gebeur nie.
As daar 'n prestasieprobleem is, neem ek aan dat u een of meer vertragings () funksies gebruik. Die truuk is om ontslae te raak van die vertragings () funksie (s) en 'n onderbreking te vervang. Die vertraging () -funksie dwing die Arduino om niks te doen terwyl hy wag totdat die vertraging () voltooi is nie. Deur 'n onderbreking te gebruik, kan u program ander dinge doen terwyl u wag op die einde van die vertraging. Daar is gewoonlik 'n groot hoeveelheid ongebruikte dooie tyd wat vir ander dinge gebruik kan word by die gebruik van vertraging (). Deur 'n onderbreking te gebruik, word hierdie probleem opgelos.
Stap 1: Onderbreek hanteraar
1. Voeg die interrupt -hanteerder by u program. Kopieer en plak iewers bo setup ();
konst ongetekende lang TIMER0_COUNT = 500; // 500 msek timer interval
// TIMER0 onderbreek hanteerder vlugtige bool tyd = vals; ISR (TIMER0_COMPA_vect) {statiese ongetekende lang telling = 0; as (++ telling> TIMER0_COUNT) {telling = 0; tyd = waar; // die tyd is ingestel op waar elke TIMER0_COUNT ms} // (tyd moet in die hoofroetine skoongemaak word)}
Stap 2: Stel periodieke tydsinterval in
2. Stel die tydsinterval in. Hierdie roetine vaar terug op die TIMER0 -onderbreking, wat elke ~ 1 msek aan die brand moet sit.
Jou "interval" is die aantal TIMER0 onderbrekings wat verwerk moet word. Elke interval is ~ 1 msek, so u stel regtig hoeveel TIMER0 -onderbrekings moet tel voordat u u interval aktiveer. IOW, stel die veranderlike TIMER0_COUNT in op hoeveel millisekondes u wil wag. Gebruik byvoorbeeld 500 vir 'n halwe sekonde. Gebruik 3000 vir 3 sekondes.
Stap 3: Onderbreek die inisialisering
3. Voeg die "TIMER0 -inisialisering" -kode by u opset () metode. Weereens, kopieer en plak in setup ().
// *** TIMER0 inisialisering ***
cli (); // skakel alle onderbrekings uit TIMSK0 = 0; // skakel timer0 af vir laer jitter OCR0A = 0xBB; // willekeurige onderbrekingstelling TIMSK0 | = _BV (OCIE0A); // piggy back on interrupt sei (); // skakel onderbrekings weer aan
Stap 4: Waar om u kode by te voeg
4. Voeg die "tydkontrole" -kode by u loop () -metode. Kopieer en plak in lus ().
as (tyd) {
tyd = vals; // doen iets hier}
Die "tyd = vals;" lyn is belangrik. Sonder hierdie reël sou die "doen hier iets" -reël (s) uitgevoer word elke keer as die program lus () uitvoer.
U vervang u eie aktiwiteite natuurlik in die 'doen iets hier' -reël. Begin met die druk van teks of die flits van die LED.
Jy's klaar!
Aanbeveel:
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Arduino Uno visvoerder in 6 goedkoop en maklike stappe !: 6 stappe
Arduino Uno Fish Feeder in 6 goedkoop en maklike stappe !: 'n Bietjie agtergrond kan dus nodig wees vir hierdie projek. Mense met troeteldiervisse het waarskynlik dieselfde probleem as ek gehad: vakansies en vergeetagtigheid. Ek het voortdurend vergeet om my vis te voer, en ek het altyd probeer om dit te doen voordat dit gebeur het
Akoestiese opheffing met Arduino Uno stap-vir-stap (8-stappe): 8 stappe
Akoestiese levitasie met Arduino Uno Stap-vir-stap (8-stappe): ultrasoniese klankomvormers L298N Dc vroulike adapter kragbron met 'n manlike DC-pen Arduino UNOBreadboard Hoe werk dit: Eerstens laai u kode op na Arduino Uno (dit is 'n mikrobeheerder toegerus met digitale en analoog poorte om kode (C ++) om te skakel
STM32CubeMX -knoppie ontkoppel met onderbreking: 5 stappe
STM32CubeMX -knoppie ontkoppel met onderbreking: Hallo, in hierdie tutoriaal sal ek probeer om my eenvoudige oplossing te gee om die weerkaatsing van knoppies te voorkom, wat 'n baie ernstige probleem is. Op die internet is daar baie video's om hierdie probleem op te los, maar nie een vir eksterne onderbrekings nie. In al hierdie video's knoppie
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: 3 stappe
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: wil u 'n eenvoudige en interessante projek maak met Arduino wat terselfdertyd baie nuttig en moontlik lewensreddend kan wees? Indien wel, het u op die regte plek gekom om te leer iets nuuts en vernuwend. In hierdie pos gaan ons