Obsah:

Arduino - pravidelné prerušenie: 4 kroky
Arduino - pravidelné prerušenie: 4 kroky

Video: Arduino - pravidelné prerušenie: 4 kroky

Video: Arduino - pravidelné prerušenie: 4 kroky
Video: Arduino návody | Bistabilní relé modul 2024, November
Anonim
Arduino - pravidelné prerušenie
Arduino - pravidelné prerušenie

Tento návod je o použití pravidelného prerušenia načasovania v programoch Arduino. Toto je krok pre začínajúceho programátora Arduino, ktorý vie, že Arduino dokáže viac, ale nevie, ako to dosiahnuť.

Ak existuje problém s výkonom, predpokladám, že používate jednu alebo viac funkcií delay (). Ide o to, zbaviť sa funkcie (a) delay () a nahradiť prerušenie. Funkcia delay () núti Arduino nič nerobiť, kým čaká na dokončenie oneskorenia (). Použitie prerušenia umožní vášmu programu robiť ďalšie veci, zatiaľ čo čaká na koniec oneskorenia. Pri použití oneskorenia () je zvyčajne obrovské množstvo nevyužitého mŕtveho času, ktorý by bolo možné využiť na iné veci. Tento problém rieši použitie prerušenia.

Krok 1: Obsluha prerušenia

1. Pridajte obslužný program prerušenia do svojho programu. Stačí skopírovať a prilepiť niekde nad setup ();

konšt. nepodpísané dlhé TIMER0_COUNT = 500; // Interval časovača 500 ms

// TIMER0 obsluha prerušenia volatile bool time = false; ISR (TIMER0_COMPA_vect) {static unsigned long count = 0; if (++ count> TIMER0_COUNT) {count = 0; čas = pravda; // čas je nastavený na hodnotu true každých TIMER0_COUNT ms} // (čas je potrebné vymazať v hlavnej rutine)}

Krok 2: Nastavte pravidelný časový interval

2. Nastavte časový interval. Táto rutina sa vracia do prerušenia TIMER0, ktoré sa nastaví tak, aby sa spustilo každých ~ 1 ms.

Váš „interval“je počet prerušení TIMER0, ktoré sa majú spracovať. Každý interval je ~ 1 ms, takže skutočne nastavujete, koľko prerušení TIMER0 sa má počítať pred aktiváciou intervalu. IOW, nastavte premennú TIMER0_COUNT na mnoho milisekúnd, na ktoré chcete čakať. Použite napríklad 500 na jednu polovicu sekundy. Použite 3 000 na 3 sekundy.

Krok 3: Prerušenie inicializácie

3. Pridajte kód „inicializácie TIMER0“do svojej metódy setup (). Opäť stačí skopírovať a prilepiť v programe setup ().

// *** Inicializácia TIMER0 ***

cli (); // vypnúť všetky prerušenia TIMSK0 = 0; // vypnutie timera0 pre nizsie chvenie OCR0A = 0xBB; // počet ľubovoľných prerušení TIMSK0 | = _BV (OCIE0A); // prasiatko späť na prerušenie sei (); // znova zapnite prerušenia

Krok 4: Kam pridať kód

4. Pridajte do metódy loop () kód „kontrola času“. Skopírujte a prilepte do slučky ().

ak (čas) {

čas = nepravda; // urob niečo tu}

„Čas = nepravda;“čiara je dôležitá. Bez tohto riadku by sa riadok (riadky) „niečo tu urobte“vykonal vždy, keď program vykoná loop ().

Samozrejme, svoje vlastné aktivity suplujete v riadku „tu niečo urobte“. Začnite vytlačením textu alebo blikaním diódy LED.

Hotovo!

Odporúča: