Përmbajtje:
- Hapi 1: Ndërprerësi i Trajtuesit
- Hapi 2: Vendosni intervalin kohor periodik
- Hapi 3: Fillimi i ndërprerjes
- Hapi 4: Ku të shtoni kodin tuaj
Video: Arduino - Ndërprerje periodike: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:21
Ky udhëzues ka të bëjë me përdorimin e një ndërprerje periodike për kohën në programet Arduino. Ky është një hap për një programues fillestar Arduino i cili e di se Arduino mund të bëjë më shumë, por nuk e di se si ta bëjë këtë të ndodhë.
Nëse ka një problem të performancës, unë supozoj se jeni duke përdorur një ose më shumë funksione të vonesës (). Truku është të heqësh qafe funksionin (t) e vonesës dhe të zëvendësosh një ndërprerje. Funksioni i vonesës () e detyron Arduino të mos bëjë asgjë ndërsa pret që vonesa () të përfundojë. Përdorimi i një ndërprerjeje lejon programin tuaj të bëjë gjëra të tjera ndërsa prisni fundin e vonesës. Zakonisht ekziston një sasi e madhe e kohës së vdekur të papërdorur që mund të përdoret për gjëra të tjera kur përdorni vonesën (). Përdorimi i një ndërprerjeje zgjidh këtë problem.
Hapi 1: Ndërprerësi i Trajtuesit
1. Shtoni mbajtësin e ndërprerjeve në programin tuaj. Thjesht kopjoni dhe ngjisni diku mbi konfigurimin ();
const i panënshkruar i gjatë TIMER0_COUNT = 500; // Intervali i kohëmatësit 500 msec
// TIMER0 interrupt handler volatile bool time = false; ISR (TIMER0_COMPA_vect) {numërim i gjatë i panënshkruar statik = 0; nëse (++ numërimi> TIMER0_COUNT) {numërimi = 0; koha = e vërtetë; // koha është caktuar si e vërtetë çdo TIMER0_COUNT ms} // (koha duhet të pastrohet në rutinën kryesore)}
Hapi 2: Vendosni intervalin kohor periodik
2. Vendosni intervalin kohor. Kjo derrkuc rutinë kthehet vetë në ndërprerjen TIMER0, e cila do të ndizet çdo 1 se sekondë.
"Intervali" juaj është numri i ndërprerjeve TIMER0 për t'u përpunuar. Çdo interval është m 1 msec, kështu që ju vërtet vendosni se sa ndërprerje TIMER0 do të numërohen para se të aktivizoni intervalin tuaj. IOW, vendosni ndryshoren TIMER0_COUNT në sa milisekonda që dëshironi të prisni. Për shembull, përdorni 500 për gjysmën e sekondës. Përdorni 3000 për 3 sekonda.
Hapi 3: Fillimi i ndërprerjes
3. Shtoni kodin "fillimi TIMER0" në metodën tuaj të konfigurimit (). Përsëri, thjesht kopjoni dhe ngjisni në konfigurim ().
// *** Nisja e TIMER0 ***
cli (); // fik të gjitha ndërprerjet TIMSK0 = 0; // fikni kohëmatësin0 për jitter më të ulët OCR0A = 0xBB; // numërimi arbitrar i ndërprerjeve TIMSK0 | = _BV (OCIE0A); // derrkuc përsëri në ndërprerjen sei (); // aktivizoni përsëri ndërprerjet
Hapi 4: Ku të shtoni kodin tuaj
4. Shtoni kodin "kontrolloni kohën" në metodën tuaj loop (). Kopjoni dhe ngjisni në lak ().
nëse (koha) {
koha = e rreme; // bëj diçka këtu}
"Koha = e rreme;" linja është e rëndësishme. Pa këtë rresht linja (t) "bëj diçka këtu" do të ekzekutohej sa herë që programi ekzekuton loop ().
Sigurisht, ju zëvendësoni aktivitetet tuaja në linjën "bëni diçka këtu". Filloni me printimin e një teksti ose ndezjen e LED.
Mbarove!
Recommended:
Arduino Halloween Edition - Zombies Pop -out Screen (hapa me fotografi): 6 hapa
Arduino Halloween Edition - Zombies Pop -out Screen (hapa me fotografi): Dëshironi të trembni miqtë tuaj dhe të bëni ndonjë zhurmë ulëritëse në Halloween? Apo thjesht doni të bëni një shaka të mirë? Ky ekran dalës i Zombies mund ta bëjë këtë! Në këtë Instructable unë do t'ju mësoj se si të bëni Zombies që dalin lehtë duke përdorur Arduino. HC-SR0
Arduino Uno Ushqyes Peshku në 6 hapa të lirë dhe të lehtë !: 6 hapa
Arduino Uno Peshku Ushqyes në 6 Hapa të Lirë dhe të Lehtë !: Pra, mund të nevojitet pak histori për këtë projekt. Njerëzit me peshq të përkëdhelur ndoshta u paraqitën me të njëjtin problem si unë: pushimet dhe harresën. Unë vazhdimisht harroja të ushqeja peshkun tim dhe gjithmonë përpiqesha ta bëja këtë para se të shkonte në
Levitim akustik me Arduino Uno Hap pas hapi (8 hapa): 8 hapa
Levitimi akustik me Arduino Uno Hap pas hapi (8 hapa): transmetuesit e zërit tejzanor L298N Dc furnizues i rrymës së furnizuesit femra me një kunj mashkullor Arduino UNOBreadboardSi funksionon kjo: Së pari, ngarkoni kodin në Arduino Uno (është një mikrokontrollues i pajisur me dixhital dhe porte analoge për të konvertuar kodin (C ++)
Tabela periodike LED interaktive: 12 hapa (me fotografi)
Tabela periodike LED interaktive: Unë dhe e dashura ime kemi një koleksion elementesh - mostra të pjesëve unike të materies që përbëjnë gjithçka në univers! Për një koleksion kaq interesant, vendosa të ndërtoj një vitrinë që shfaq mostrat në të gjithë botën e tyre të ndërtuar
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni