Funkcia → millis()

Popis :

Vráti počet milisekúnd, ktoré uplynuli od spustenia aktuálneho programu na doske Arduino. Toto číslo prekročí (vráti sa späť na nulu) približne po 50 dňoch.

Syntax :

Parametre :

Returns :

Počet milisekúnd, ktoré uplynuli od spustenia programu. Typ údajov: unsigned long.

Príklad kódu :

Tento vzorový kód zobrazí na sériový port počet milisekúnd, ktoré uplynuli, odkedy doska Arduino začala spúšťať samotný kód.

unsigned long myTime;

void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Čas: ");
  myTime = millis();

  Serial.println(myTime); // zobrazí čas od spustenia programu
  delay(1000);          // počkať sekundu
}

Poznámky :

Návratová hodnota pre millis() je typu unsigned long. Ak sa programátor pokúsi vykonať aritmetiku s menšími typmi údajov, ako je napríklad int, môžu sa vyskytnúť logické chyby. Dokonca aj signed long môže naraziť na chyby, pretože jeho maximálna hodnota je polovičná v porovnaní s nepodpísaným náprotivkom.

millis() sa zvyšuje (pre 16 MHz čipy AVR a niektoré ďalšie) každých 1,024 milisekúnd, potom sa zvyšuje o 2 (namiesto 1) každých 41 alebo 42 tikov, aby sa vrátilo do synchronizácie; takže niektoré hodnoty millis() sú preskočené.

Pre presné načasovanie v krátkych intervaloch zvážte použitie micros().

millis() sa zmení na 0 po približne 49 dňoch (mikro približne za 71 minút).

Rekonfigurácia časovačov mikrokontroléra môže viesť k nepresným hodnotám milis(). Jadrá „Arduino AVR Boards“ a „Arduino megaAVR Boards“ používajú Timer0 na generovanie millis(). Jadrá „Arduino ARM (32-bitové) dosky“ a „Arduino SAMD (32-bitové ARM Cortex-M0+) dosky“ využívajú časovač SysTick.


Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Nemôžete kopírovať obsah tejto stránky