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 :
time = millis()
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